Как вы отправляете номер, когда вы отвечаете на запрос get с помощью coap

Я некоторое время читал rfc 7252, и я, вероятно, слеп, но я не могу найти, как я могу отправить простое число (целое или с плавающей запятой), когда вы отвечаете на запрос на получение ресурса (например, датчик/свет , где вы это пишете в пакете.

Я думаю, что это в полезной нагрузке, поэтому я попытался отправить этот пакет: опция content-format text/plain, charset = utf-8, длина 1, затем я пишу 255 (0xff) в пакете, затем я пишу 0x34 в пакете ( часть полезной нагрузки).

Но, очевидно, это не работает, во-первых, я не думаю, что мне следует использовать эту опцию (возможно, другую, но я не могу найти подходящую для отправки целого числа или числа с плавающей запятой), хотя я не уверен, что я в правильный путь и больше не уверен в том, что я делаю, вот почему я спрашиваю.

Спасибо за помощь,

До свидания

РЕДАКТИРОВАТЬ: Вот дополнительная информация: я использую microcoap на arduino, используя кабель Ethernet между компьютером и arduino mega 2560. информация о Wireshark


person Masa    schedule 20.03.2016    source источник
comment
Не могли бы вы опубликовать код, показывающий, как вы это настраиваете, и указать, какой тип языка и пакетов вы используете?   -  person Preston    schedule 20.03.2016
comment
Я добавил дополнительную информацию со скриншотами, вам нужна дополнительная информация? (Должен ли я добавить код Arduino или все в порядке? Хотя мне кажется, что Wireshark достаточно, но как вы пожелаете, сэр)   -  person Masa    schedule 20.03.2016


Ответы (1)


Изучив вашу трассировку Wireshark и увидев ответ в Copper, я думаю, что вижу проблему. Когда вы говорите, что Content-format является text/plain, вы говорите, что отправляете данные ASCII. Вы говорите, что отправляете [0xFF 0x34] в своем сообщении, но в трассировке, которую вы на самом деле отправляете, это [0xFF 0x33]. Медь показывает вам именно то, что вы отправляете: 0xFF здесь не разрешается как ASCII, а 0x33 — это ASCII для 3, который отображается в трассировке Wireshark и в окне вывода Copper. Если вы хотите отправить 2 необработанных байта данных, которые не должны интерпретироваться как текст, вы хотите установить для Content-format значение application/octet-stream.

person Preston    schedule 21.03.2016