Files
MicrOBU/microbu-esp32c5/external/vanetza-idf/vanetza/asn1/support/BOOLEAN_jer.c
T
Ashin Walpola 0e9525162d Keep the colleague's microbu-esp32c5 tree in this repository
obu-firmware builds against vanetza-idf from microbu-esp32c5/external, but
that tree was gitignored, so a clone of this repository could not build the
firmware it ships. It is now committed here as ordinary files in its own
folder, microbu-esp32c5/: the colleague's commit cf4b99f plus the V2X2MAP
bridge's signature verification (--trust) used on the bench. Nothing is
fetched from or pushed to the colleague's repository; this repository and
its remotes carry everything. The folder's own .gitignore keeps build output,
downloaded components and private key material out, as it did there; the
committed file set is identical to that repository's tracked files.

The ESP32-C5 is still flashed from obu-firmware/, which only takes
vanetza-idf from microbu-esp32c5/, so the two stay separate folders.
FLASHING.md says how to take a newer version of the colleague's tree (copy
it over the folder, rebuild, test, commit).
2026-09-23 17:46:40 +02:00

69 lines
1.8 KiB
C

/*
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
* All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#include "asn_internal.h"
#include "asn_codecs_prim.h"
#include "BOOLEAN.h"
#include <errno.h>
/*
* Decode the chunk of JSON text encoding INTEGER.
*/
static enum jer_pbd_rval
BOOLEAN__jer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr,
const void *chunk_buf, size_t chunk_size) {
BOOLEAN_t *st = (BOOLEAN_t *)sptr;
const char *p = (const char *)chunk_buf;
(void)td;
(void)chunk_size;
if(p[0] == 't' /* 'true' */) {
*st = 1;
return JPBD_BODY_CONSUMED;
} else if (p[0] == 'f' /* 'false' */) {
*st = 0;
return JPBD_BODY_CONSUMED;
} else {
return JPBD_BROKEN_ENCODING;
}
}
asn_dec_rval_t
BOOLEAN_decode_jer(const asn_codec_ctx_t *opt_codec_ctx,
const asn_TYPE_descriptor_t *td,
const asn_jer_constraints_t* constraints,
void **sptr, const void *buf_ptr, size_t size) {
return jer_decode_primitive(opt_codec_ctx, td,
sptr, sizeof(BOOLEAN_t), buf_ptr, size,
BOOLEAN__jer_body_decode);
}
asn_enc_rval_t
BOOLEAN_encode_jer(const asn_TYPE_descriptor_t *td,
const asn_jer_constraints_t *constraints,
const void *sptr, int ilevel, enum jer_encoder_flags_e flags,
asn_app_consume_bytes_f *cb, void *app_key) {
const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
asn_enc_rval_t er = {0, 0, 0};
(void)ilevel;
(void)flags;
if(!st) ASN__ENCODE_FAILED;
if(*st) {
ASN__CALLBACK("true", 4);
} else {
ASN__CALLBACK("false", 5);
}
ASN__ENCODED_OK(er);
cb_failed:
ASN__ENCODE_FAILED;
}