Sfoglia il codice sorgente

fix(lwm2m): decode/encode data as signed integer

Shawn 4 anni fa
parent
commit
f8fbd3e3db
1 ha cambiato i file con 2 aggiunte e 2 eliminazioni
  1. 2 2
      apps/emqx_lwm2m/src/emqx_lwm2m_message.erl

+ 2 - 2
apps/emqx_lwm2m/src/emqx_lwm2m_message.erl

@@ -126,7 +126,7 @@ value(Value, ResourceId, ObjDefinition) ->
             Value;  % keep binary type since it is same as a string for jsx
         "Integer" ->
             Size = byte_size(Value)*8,
-            <<IntResult:Size>> = Value,
+            <<IntResult:Size/signed>> = Value,
             IntResult;
         "Float" ->
             Size = byte_size(Value)*8,
@@ -365,7 +365,7 @@ encode_int(Int) when Int >= 0 ->
     binary:encode_unsigned(Int);
 encode_int(Int) when Int < 0 ->
     Size = byte_size_of_signed(-Int) * 8,
-    <<Int:Size>>.
+    <<Int:Size/signed>>.
 
 byte_size_of_signed(UInt) ->
     byte_size_of_signed(UInt, 0).