2013-04-25 4 views
0

Как я могу создать serialforwarder или использовать его для пересылки полученных данных в другую программу, чтобы сделать какой-то процесс?использовать данные последовательного порта в другой программе

как разобрать данные и использовать их в качестве входных данных для другой программы, такой как Matlab или C# или java-приложение. , какой протокол используется для анализа полученных данных?

Последний вопрос: это только для мотивов, которые являются базовой станцией mote? могу я построить один для любого mote?

ответ

0

Вы должны тщательно прочитать серийный стек ... его не очень легко, но он способен.

Вы можете напрямую прочитать последовательный порт. В этом случае вам не нужен последовательный переадресатор. Есть кое-что, о чем нужно позаботиться.

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

в C# (то же самое для Java и т. Д.) Вы можете читать потоки байтов, которые поступают в последовательный порт. Вы можете анализировать эти байтовые потоки, чтобы извлечь стандартное последовательное сообщение тиньо.

Это как-то объяснено в TEP #113, хотя у него есть некоторые проблемы, но вы должны быть в состоянии найти эти проблемы и сделать вашу программу работы.

Как указано в ТЭП 113, стандартный серийный пакет что-то вроде:

7e 40 09 00 быть эф 05 7d 5d 06 01 02 03 04 05 7e

Это означает, что пакет начинается с hex 7E (я считаю его 126 или 127) и заканчивается также 7E. Последние 2 байта составляют CRC пакета. Таким образом, вы можете в своей программе C# начать чтение из последовательного порта, когда вы столкнулись с 7E, и прекратите чтение, когда вы достигнете следующего 7E в потоке. Все будет между вами и вашим пакетом.

Вы должны быть осторожны escaping, который, если 7E является частью контента пакета, чтобы не путать с начальным и конечным dilimeters, он будет экранировать к чему-то еще ... что это также объясняется тем, что TEP 113.

Я считаю, что для вычисления CRC был написан код C++, который вы можете легко преобразовать в код C# или Java.

Также проверьте исходный код Serial.h, который содержит некоторые сведения о том, как формируется последовательный пакет в TinyOS.

Смежные вопросы