mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-26 07:53:34 +08:00
tinybson: explicitly append int32 or int64
This commit is contained in:
@@ -106,7 +106,7 @@ param_export_internal(param_filter_func filter)
|
|||||||
case PARAM_TYPE_INT32:
|
case PARAM_TYPE_INT32:
|
||||||
i = s->val.i;
|
i = s->val.i;
|
||||||
|
|
||||||
if (bson_encoder_append_int(&encoder, param_name(s->param), i)) {
|
if (bson_encoder_append_int32(&encoder, param_name(s->param), i)) {
|
||||||
debug("BSON append failed for '%s'", param_name(s->param));
|
debug("BSON append failed for '%s'", param_name(s->param));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1503,7 +1503,7 @@ static int param_export_internal(int fd, param_filter_func filter)
|
|||||||
const int32_t i = s->val.i;
|
const int32_t i = s->val.i;
|
||||||
PX4_DEBUG("exporting: %s (%d) size: %lu val: %" PRIi32, name, s->param, (long unsigned int)size, i);
|
PX4_DEBUG("exporting: %s (%d) size: %lu val: %" PRIi32, name, s->param, (long unsigned int)size, i);
|
||||||
|
|
||||||
if (bson_encoder_append_int(&encoder, name, i) != 0) {
|
if (bson_encoder_append_int32(&encoder, name, i) != 0) {
|
||||||
PX4_ERR("BSON append failed for '%s'", name);
|
PX4_ERR("BSON append failed for '%s'", name);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -575,28 +575,28 @@ int bson_encoder_append_bool(bson_encoder_t encoder, const char *name, bool valu
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
bson_encoder_append_int(bson_encoder_t encoder, const char *name, int64_t value)
|
bson_encoder_append_int32(bson_encoder_t encoder, const char *name, int32_t value)
|
||||||
{
|
{
|
||||||
bool result;
|
|
||||||
|
|
||||||
CODER_CHECK(encoder);
|
CODER_CHECK(encoder);
|
||||||
|
|
||||||
/* use the smallest encoding that will hold the value */
|
if (write_int8(encoder, BSON_INT32) ||
|
||||||
if (value == (int32_t)value) {
|
write_name(encoder, name) ||
|
||||||
debug("encoding %lld as int32", value);
|
write_int32(encoder, value)) {
|
||||||
result = write_int8(encoder, BSON_INT32) ||
|
CODER_KILL(encoder, "write error on BSON_INT32");
|
||||||
write_name(encoder, name) ||
|
|
||||||
write_int32(encoder, value);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
debug("encoding %lld as int64", value);
|
|
||||||
result = write_int8(encoder, BSON_INT64) ||
|
|
||||||
write_name(encoder, name) ||
|
|
||||||
write_int64(encoder, value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result) {
|
return 0;
|
||||||
CODER_KILL(encoder, "write error on BSON_INT");
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
bson_encoder_append_int64(bson_encoder_t encoder, const char *name, int64_t value)
|
||||||
|
{
|
||||||
|
CODER_CHECK(encoder);
|
||||||
|
|
||||||
|
if (write_int8(encoder, BSON_INT64) ||
|
||||||
|
write_name(encoder, name) ||
|
||||||
|
write_int64(encoder, value)) {
|
||||||
|
CODER_KILL(encoder, "write error on BSON_INT64");
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -613,7 +613,6 @@ bson_encoder_append_double(bson_encoder_t encoder, const char *name, double valu
|
|||||||
CODER_KILL(encoder, "write error on BSON_DOUBLE");
|
CODER_KILL(encoder, "write error on BSON_DOUBLE");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -256,13 +256,22 @@ __EXPORT void *bson_encoder_buf_data(bson_encoder_t encoder);
|
|||||||
__EXPORT int bson_encoder_append_bool(bson_encoder_t encoder, const char *name, bool value);
|
__EXPORT int bson_encoder_append_bool(bson_encoder_t encoder, const char *name, bool value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Append an integer to the encoded stream.
|
* Append an int32 to the encoded stream.
|
||||||
*
|
*
|
||||||
* @param encoder Encoder state.
|
* @param encoder Encoder state.
|
||||||
* @param name Node name.
|
* @param name Node name.
|
||||||
* @param value Value to be encoded.
|
* @param value Value to be encoded.
|
||||||
*/
|
*/
|
||||||
__EXPORT int bson_encoder_append_int(bson_encoder_t encoder, const char *name, int64_t value);
|
__EXPORT int bson_encoder_append_int32(bson_encoder_t encoder, const char *name, int32_t value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Append an int64 to the encoded stream.
|
||||||
|
*
|
||||||
|
* @param encoder Encoder state.
|
||||||
|
* @param name Node name.
|
||||||
|
* @param value Value to be encoded.
|
||||||
|
*/
|
||||||
|
__EXPORT int bson_encoder_append_int64(bson_encoder_t encoder, const char *name, int64_t value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Append a double to the encoded stream
|
* Append a double to the encoded stream
|
||||||
|
|||||||
@@ -65,12 +65,12 @@ encode(bson_encoder_t encoder)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bson_encoder_append_int(encoder, "int1", sample_small_int) != 0) {
|
if (bson_encoder_append_int32(encoder, "int1", sample_small_int) != 0) {
|
||||||
PX4_ERR("FAIL: encoder: append int failed");
|
PX4_ERR("FAIL: encoder: append int failed");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bson_encoder_append_int(encoder, "int2", sample_big_int) != 0) {
|
if (bson_encoder_append_int64(encoder, "int2", sample_big_int) != 0) {
|
||||||
PX4_ERR("FAIL: encoder: append int failed");
|
PX4_ERR("FAIL: encoder: append int failed");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user