Здравствуй, дорогой роевой разум,
Один из моих текущих частных проектов связан с Интернетом вещей, в частности с LoRaWan и TTN. Для простоты обработки данных я решил использовать node-red, который представляет собой потоковый инструмент на основе node-js для обработки полученных данных. Это первый раз, когда я столкнулся с миром javascript (кроме незначительного чтения;)). Вот проблема:
Я передаю знаковый тип C-Style int16_t
, разделенный на два 8-битных полубайта, через ttn. На принимающем сайте я хочу снова объединить эти два кусочка в подписанный 16-битный тип. Ну, проблема в том, что javascript поддерживает только 32-битные целые числа, что означает простое их слияние с помощью побитовых операций, подобных этому:
newMsg.payload=(msg.payload[1]<<8)|(msg.payload[0]);
Я теряю подписанную информацию и просто получаю неподписанную интерпретацию данных, поскольку она не хранится в 32-битном дополнении до двух. Поскольку я еще не очень хорошо знаком со «стандартной библиотекой» javascript, это кажется мне сложной проблемой! Любая помощь будет оценена