Вверх ↑
Ответов: 43
Рейтинг: 1
#1: 2014-02-06 19:24:52 ЛС | профиль | цитата
andrestudio писал(а):
установи монитор http://www.serial-port-monitor.com и поймаешь свою багу
Поставил я прогу, правда Device Monitoring Studio той же конторы (потому что у меня Win7 x64). Обнаружил причину.
Приходят 2 кода от контроллера (во время прошивки EEPROM):
#13 и #2e - запрет передачи
#2a и #11 - продолжение передачи
Прога на их не реагирует. Всё-равно продолжает слать данные, в итоге запись срывается и творится всякая ерунда.
Гляньте, пожалуйста исходник...
https://drive.google.com/?tab=mo&authuser=0#folders/0B5M0qoM4Gjk0LTlkWXFSZFJUTTg
------------ Дoбавленo в 19.24:
В общем я разобрался. У меня программа вообще не реагирует на входящие данный от контроллера, короче прога слышит контроллер, отображает в поле строк обмен, но не выполняет никаких действий (приостановить передачу, возобновить передачу, статус подключения к контроллеру и т.д.) А не реагирует, потому что контроллер отвечает не построчно, а как получится (в терминале может придти половина строки в одной строке, другая во второй строке, по разному). Поэтому я и не могу выловить символы.
Как организовать прослушивание того, что приходит на комп по COM порту?
Сейчас сделано так, прослушивание есть, реакции нет.
#pas
Add(COMEX,7412496,483,203)
{
BaudRate=15
DataBits=1
Point(doRXClear)
link(onRead,14531254:doEvent1,[])
}
Add(InfoTip,15944742,901,179)
{
Info=#12:Разр. TX #11|
Frame=1
Width=36
Height=25
}
Add(InfoTip,15972238,852,179)
{
Info=#13:Запрет TX #13|
Frame=1
Width=36
Height=25
}
Add(Hub,14531254,532,210)
{
OutCount=4
link(onEvent1,5430127:doConvert,[])
link(onEvent2,5995389:doCase,[])
link(onEvent4,3947530:doCompare,[(553,237)(553,286)])
}
Add(InfoTip,14355627,560,181)
{
Info=#11:Ожид. "pf+"|
Frame=1
Width=36
}
Add(InfoTip,10119221,609,181)
{
Info=#11:Ожид. "pe+"|
Frame=1
Width=29
}
Add(InfoTip,1808801,658,181)
{
Info=#10:Ожид. "g+"|
Frame=1
Width=29
}
Add(InfoTip,8676743,707,181)
{
Info=#12:Ожид. "c45b"|
Frame=1
Width=29
}
Add(Case,5995389,560,217)
{
Value=String(pf+)
link(onNextCase,15818237:doCase,[])
}
Add(Case,15818237,609,217)
{
Value=String(pe+)
link(onNextCase,12119547:doCase,[])
}
Add(Case,12119547,658,217)
{
Value=String(g+)
link(onNextCase,7476301:doCase,[])
}
Add(Case,7476301,707,217)
{
Value=String(c45b)
link(onNextCase,8992250:doCase,[])
}
Add(Case,8992250,756,217)
{
Value=String(.*+)
link(onTrue,13783559:doOn,[(798,230)(798,307)])
}
Add(Case,9312450,854,210)
{
Value=Integer(19)
link(onNextCase,5060507:doCase,[])
}
Add(Case,5060507,903,210)
{
Value=Integer(17)
}
Add(Convertor,5430127,805,210)
{
Mode=3
link(onResult,9312450:doCase,[])
}
Add(InfoTip,13884601,756,181)
{
Info=#11:Ожид. ".*+"|
Frame=1
Width=29
}
Add(LED,13783559,819,287)
{
Left=200
Top=270
ColorOn=65280
ColorOff=32768
}
Add(LED,759336,819,324)
{
Left=55
Top=270
ColorOn=65280
ColorOff=32768
}
Add(Label,13802768,861,324)
{
Left=15
Top=295
Width=108
Height=17
Caption="Статус подключения"
}
Add(Label,14836790,861,287)
{
Left=175
Top=295
Width=74
Height=17
Caption="Конец записи"
}
Add(If_else,3947530,560,280)
{
Op2=Integer(19)
link(onTrue,759336:doOn,[(706,286)(706,344)])
}

карма: 0

0