From 331f4bce403977a9671865f370e1a8cf1053ab49 Mon Sep 17 00:00:00 2001 From: Orne Brocaar Date: Mon, 12 Sep 2022 12:28:23 +0100 Subject: [PATCH] Fix "Error converting from js 'float' into type 'i32'" error. --- chirpstack/src/codec/js/mod.rs | 6 +++++- chirpstack/src/codec/mod.rs | 4 +--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/chirpstack/src/codec/js/mod.rs b/chirpstack/src/codec/js/mod.rs index 91c5bf8c..2431d741 100644 --- a/chirpstack/src/codec/js/mod.rs +++ b/chirpstack/src/codec/js/mod.rs @@ -170,7 +170,11 @@ pub async fn encode( } } - let v: Vec = res.get("bytes")?; + // Directly into u8 can result into the following error: + // Error converting from js 'float' into type 'i32' + let v: Vec = res.get("bytes")?; + let v: Vec = v.iter().map(|v| *v as u8).collect(); + Ok(v) }) } diff --git a/chirpstack/src/codec/mod.rs b/chirpstack/src/codec/mod.rs index 6678e78d..87b76b00 100644 --- a/chirpstack/src/codec/mod.rs +++ b/chirpstack/src/codec/mod.rs @@ -89,9 +89,7 @@ pub async fn struct_to_binary( Ok(match codec { Codec::NONE => Vec::new(), Codec::CAYENNE_LPP => cayenne_lpp::encode(obj).context("CayenneLpp encode")?, - Codec::JS => js::encode(f_port, variables, encoder_config, obj) - .await - .context("JavaScript encoder")?, + Codec::JS => js::encode(f_port, variables, encoder_config, obj).await?, }) }