Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#76: 2014-02-22 02:11:40 ЛС | профиль | цитата
Леонид, потом будет хотелка на остальные команды и ответы
prog3.gif
mcmega, все команды (вернее маски команд) запиши в StrList и применяй для анализа StrMask
(Хотя было-бы неплохо (прямо просится) добавить в компонент маску на '0123456789ABCDEF' (hex))
mcmega писал(а):
Не могу найти, где данные из скачанного файла хранятся или хотя бы как сохранить файл скачанный на диск без вызова диалогового окна (сохранить как) в папку с программой и именем как на сервере FTP?
я бы советовал сохранять временный файл под именем, например, myprog.hex (меньше линков и не надо выделять имя файла)
И очень просто рашается вопрос с диалоговым окном.
------------ Дoбавленo в 02.11:
mcmega писал(а):
Я хочу отслеживать последовательность символов приходящих с порта mr0000+**
Нет там такого, есть
mrXXXXXX и mrXXXXXX+
где mr - код операции
XXXXXX - первые четыре знака - адрес, последние два знака - значение (hex)
без "+" - команда "записать по адресу значение"
с "+" - ответ "записано по адресу значение"

Там ещё есть возвращаемые символы: строка записана правильно и ошибка записи с остановкой процесса записи.

Уж что-что, а протокол обмена изучить нужно.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1prog3.gif [69.1KB] [471]
Ответов: 43
Рейтинг: 1
#77: 2014-02-22 10:10:07 ЛС | профиль | цитата
Я изучил протокол обмена, а на практике получается ответ такого формата: mrXXXX+AA, где АА значение считанное по адресу ХХХХ. Видимо устаревший мануал по загрузчику.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#78: 2014-02-22 10:28:34 ЛС | профиль | цитата
mcmega писал(а):
Видимо устаревший мануал по загрузчику.
Может быть.
Хотя на практике (для mr согласно протокола) должно получаться две строки
mrXXXX+
и
AA
Поставь на линк Debug и должен увидеть, между + и АА, ещё один знак (
).
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 43
Рейтинг: 1
#79: 2014-02-22 21:37:56 ЛС | профиль | цитата
Tad писал(а):
mcmega, все команды (вернее маски команд) запиши в StrList и применяй для анализа StrMask
(Хотя было-бы неплохо (прямо просится) добавить в компонент маску на '0123456789ABCDEF' (hex))
mcmega писал(а)
Не могу найти, где данные из скачанного файла хранятся или хотя бы как сохранить файл скачанный на диск без вызова диалогового окна (сохранить как) в папку с программой и именем как на сервере FTP?
я бы советовал сохранять временный файл под именем, например, myprog.hex (меньше линков и не надо выделять имя файла)
И очень просто рашается вопрос с диалоговым окном.

А пример есть, как это реализовать, я до этого не дорос ещё))
Это то, как сейчас ловятся символы с порта:
#pas
Add(ChildGroupBox,2155202,455,308)
{
}
BEGIN_SDK
Add(EditMulti,3644092,42,14)
{
EventCount=2
WorkCount=3
DataCount=1
Width=1161
Height=550
VOffset=140
HOffset=783
link(doWork1,5075557:doEnum,[(49,160)(49,111)])
link(doWork2,15329165:doEvent2,[(240,167)(240,62)])
link(doWork3,5711268:doEvent1,[])
}
Add(GroupBox,3298344,52,364)
{
Left=270
Top=97
Width=250
Height=315
Font=[Arial,8,0,0,204]
ParentFont=0
Caption="Работа с устройством"
MakeTrans(Caption)
}
Add(Hub,14099877,1176,161)
{
InCount=6
OutCount=1
link(onEvent1,3644092:onEvent2,[])
}
Add(Label,15124748,52,322)
{
Left=10
Top=77
Width=131
Height=17
Caption="Файл для загрузки в МК"
MakeTrans(Caption)
}
Add(FormatStr,3442130,1008,182)
{
DataCount=1
Mask="%1\r\n"
link(onFString,14099877:doEvent4,[])
}
Add(DoData,8956965,1057,42)
{
Data=String(U)
link(onEventData,14099877:doEvent1,[(1163,48)(1163,167)])
}
Add(LED,16636578,611,42)
{
Left=218
Top=22
ColorOn=65280
ColorOff=32768
link(onChange,10202083:doCompare,[])
}
Add(Hub,15844996,581,91)
{
OutCount=3
link(onEvent1,3203028:doStop,[(906,97)(906,55)])
link(onEvent2,16636578:doOn,[(603,104)(603,62)])
link(onEvent3,15354148:doData,[(605,111)(605,139)])
}
Add(Timer,3203028,1001,42)
{
Interval=10
Enable=1
AutoStop=500
link(onTimer,8956965:doData,[])
}
Add(If_else,14640087,944,42)
{
Type=5
Op2=String(. . .)
link(onTrue,3203028:doTimer,[])
link(Op1,3644092:Data1,[(950,28)(831,28)])
}
Add(Edit,16180008,777,168)
{
Left=5
Top=94
Width=210
Color=15532012
Text=""
link(onChange,13567403:doEvent1,[])
}
Add(ODialog,4589588,707,175)
{
Filter="HEX|*.hex|All|*.*"
Title=""
link(onExecute,5711268:doEvent2,[])
}
Add(ArrayRW,8215120,952,280)
{
link(onRead,3442130:doString,[(996,286)(996,188)])
link(Array,10437469:Array,[])
}
Add(ProgressBar,4490674,917,231)
{
Left=5
Top=117
Width=240
Height=15
Color=32768
Max=0
ProgressColor=65280
Point(doMax)
}
Add(Hub,10485665,889,280)
{
OutCount=3
link(onEvent1,8215120:doRead,[])
link(onEvent2,4490674:doPosition,[(910,293)(910,237)])
link(onEvent3,8761821:doWork1,[(915,300)(915,342)])
}
Add(DoData,15046238,868,238)
{
link(onEventData,4490674:doMax,[])
link(Data,10437469:Count,[(874,229)(951,229)])
}
Add(Counter,11329908,847,280)
{
Min=-1
Max=999999999
Default=-1
link(onNext,10485665:doEvent1,[])
}
Add(Thread,14788567,728,280)
{
Delay=10
link(onExec,11329908:doNext,[])
}
Add(StrList,10437469,938,161)
{
}
Add(InfoTip,16125333,658,147)
{
Info=#19:Загрузка в Hex в МК|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|
Width=393
Height=207
}
Add(Case,3948753,273,329)
{
@Hint=#4:XOFF|
Value=Integer(19)
link(onNextCase,10816665:doCase,[(313,335)(313,314)])
link(onTrue,8761821:doWork2,[])
AddHint(-14,-17,42,13,@Hint)
}
Add(Case,10816665,322,308)
{
@Hint=#3:XON|
Value=Integer(17)
link(onTrue,13512245:doWork3,[(361,321)])
AddHint(-10,-18,38,13,@Hint)
}
Add(Convertor,2904597,231,329)
{
Mode=3
link(onResult,3948753:doCase,[])
}
Add(Str_Enum,5075557,56,105)
{
@Hint=#15:БЛОК ОБР|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|
Delimiter=""
link(onEnum,7814260:doEvent1,[])
AddHint(-12,-33,117,13,@Hint)
}
Add(MemFifo,556140,161,112)
{
Count=7
link(onData,9050649:doStrCat,[(221,118)(221,105)(142,105)(142,230)])
}
Add(Case,9865424,196,224)
{
@Hint=#2:g+|
Value=String(g+)
link(onNextCase,12968234:doStrCat,[])
link(onTrue,15329165:doEvent1,[(233,237)(233,55)])
AddHint(-3,-17,27,13,@Hint)
}
Add(StrCat,9050649,154,224)
{
link(onStrCat,9865424:doCase,[])
link(Str1,556140:Value2,[(160,184)(174,184)])
link(Str2,556140:Value1,[])
}
Add(StrCat,12968234,238,224)
{
link(onStrCat,8849332:doCase,[])
link(Str1,556140:Value3,[(244,184)(181,184)])
}
Add(Case,8849332,280,224)
{
@Hint=#3:pf+|
Value=String(pf+)
link(onNextCase,8579177:doCase,[])
link(onTrue,13512245:doWork2,[(317,237)(317,286)])
AddHint(-4,-17,30,13,@Hint)
}
Add(Case,8579177,322,224)
{
@Hint=#3:pe+|
Value=String(pe+)
link(onNextCase,2030600:doStrCat,[])
link(onTrue,13512245:doWork1,[(361,237)])
AddHint(-5,-17,33,13,@Hint)
}
Add(StrCat,2030600,364,224)
{
link(onStrCat,597639:doCase,[])
link(Str1,556140:Value4,[(370,179)(188,179)])
}
Add(Case,597639,406,224)
{
@Hint=#4:c45b|
Value=String(c45b)
link(onNextCase,15125236:doStrCat,[])
link(onTrue,15844996:doEvent1,[(447,237)(447,97)])
AddHint(-12,-17,39,13,@Hint)
}
Add(HubEx,13512245,357,280)
{
link(onEvent,14788567:doStart,[])
}
Add(Hub,13567403,819,168)
{
OutCount=4
link(onEvent1,11274202:doEvent1,[])
link(onEvent2,12885066:doEvent1,[(885,181)(885,195)])
link(onEvent3,15046238:doData,[(851,188)(851,244)])
link(onEvent4,11329908:doReset,[(840,195)(840,300)])
}
Add(HubEx,8761821,705,336)
{
Angle=3
link(onEvent,14788567:doStop,[(709,293)])
}
Add(Hub,7814260,98,105)
{
link(onEvent1,2904597:doConvert,[(125,111)(125,335)])
link(onEvent2,556140:doValue,[])
}
Add(Hub,7127512,910,42)
{
link(onEvent1,14640087:doCompare,[])
link(onEvent2,3644092:onEvent1,[(1194,55)(1194,160)])
}
Add(Button,3907127,664,175)
{
Left=215
Top=102
Width=30
Font=[MS Sans Serif,8,1,0,1]
Caption=". . ."
link(onClick,4589588:doExecute,[])
}
Add(Button,10902509,766,42)
{
Left=5
Top=21
Width=210
Height=25
Caption="Подключиться"
Point(doCaption)
MakeTrans(Caption)
link(onClick,14024516:doCompare,[(805,48)(805,111)])
AddHint(-27,-23,89,13,Caption)
}
Add(Button,1594928,1074,189)
{
Left=5
Top=134
Width=115
Font=[MS Sans Serif,8,1,0,1]
Caption="Запись Flash"
Data=String(pf\r\n)
MakeTrans(Caption)
link(onClick,14099877:doEvent5,[])
AddHint(-17,34,80,13,Caption)
}
Add(Button,15836405,1074,245)
{
Left=130
Top=134
Width=115
Font=[MS Sans Serif,8,1,0,1]
Caption="Запись EEPROM"
Data=String(pe\r\n)
MakeTrans(Caption)
link(onClick,14099877:doEvent6,[(1141,251)(1141,202)])
AddHint(-17,34,101,13,Caption)
}
Add(Hub,15329165,259,49)
{
InCount=2
OutCount=1
link(onEvent1,16636578:doOff,[])
}
Add(DoData,9632157,700,28)
{
Data=String(Отключиться)
link(onEventData,6926084:doEvent1,[(737,34)(737,48)])
}
Add(If_else,10202083,658,42)
{
Op2=Integer(1)
link(onTrue,9632157:doData,[(695,48)(695,34)])
link(onFalse,12416381:doData,[(695,55)(695,69)])
}
Add(Hub,6926084,742,42)
{
InCount=2
link(onEvent1,10902509:doCaption,[])
link(onEvent2,9909713:doData,[])
}
Add(DoData,12416381,700,63)
{
Data=String(Подключиться)
link(onEventData,6926084:doEvent2,[(737,69)(737,55)])
}
Add(DoData,13252608,861,105)
{
Data=String(g\r\n)
link(onEventData,14099877:doEvent2,[(1154,111)(1154,174)])
}
Add(If_else,14024516,812,105)
{
Op2=String(Отключиться)
link(onTrue,13252608:doData,[])
link(onFalse,15833368:doData,[(852,118)(852,48)])
link(Op1,9909713:GetData,[])
}
Add(DoData,15833368,861,42)
{
link(onEventData,7127512:doEvent1,[])
}
Add(EventFromData,9909713,812,49)
{
}
Add(ListBox,5957109,1008,224)
{
Left=15
Top=162
Width=220
Height=130
}
Add(Hub,11274202,896,168)
{
link(onEvent1,10437469:doClear,[])
link(onEvent2,5957109:doClear,[(977,181)(977,237)])
}
Add(Hub,12885066,896,189)
{
link(onEvent1,10437469:doLoad,[])
link(onEvent2,5957109:doLoad,[(977,202)(977,258)])
}
Add(Hub,5711268,749,168)
{
InCount=2
OutCount=1
link(onEvent1,16180008:doText,[])
}
Add(Label,4265659,52,275)
{
Left=10
Top=55
Width=144
Height=17
Caption="Текущая версия прошивки:"
MakeTrans(Caption)
}
Add(Label,6378927,623,231)
{
Left=160
Top=56
Width=79
Height=17
Caption=""
Alignment=1
}
Add(Case,4317059,581,224)
{
@Hint=#4:c45b|
Value=String(mr0000)
link(onNextCase,6378927:doText,[(618,230)(618,237)])
AddHint(-5,-18,39,13,@Hint)
}
Add(StrCat,15125236,455,224)
{
link(onStrCat,3457596:doStrCat,[])
link(Str1,556140:Value5,[(461,171)(195,171)])
}
Add(StrCat,3457596,497,224)
{
link(onStrCat,4701450:doStrCat,[])
link(Str1,556140:Value6,[(503,163)(202,163)])
}
Add(StrCat,4701450,539,224)
{
link(onStrCat,4317059:doCase,[])
link(Str1,556140:Value7,[(545,156)(209,156)])
}
Add(DoData,15354148,616,133)
{
Data=String(mr0000\r\n)
link(onEventData,14099877:doEvent3,[(1145,139)(1145,181)])
}
Add(StrMask,8607245,483,462)
{
}
Add(StrList,13008570,420,455)
{
}
END_SDK


А это работа с FTP
#pas
Add(ChildGroupBox,12770962,378,322)
{
}
BEGIN_SDK
Add(EditMulti,13159196,21,70)
{
EventCount=1
WorkCount=1
Width=636
Height=501
VOffset=147
HOffset=500
link(doWork1,13619925:doEvent1,[])
}
Add(GroupBox,365837,37,371)
{
Left=5
Top=2
Width=258
Height=369
Caption="Обновления на сайте"
MakeTrans(Caption)
}
Add(Button,15340873,85,210)
{
@Hint=#26:Подключиться к FTP серверу|
Left=10
Top=16
Width=190
Height=30
Caption="Подключиться к серверу"
Data=Integer(0)
link(onClick,16612106:doOpen,[])
}
Add(Button,8613638,406,371)
{
Left=10
Top=331
Width=190
Height=30
Caption="Загрузить обновление"
MakeTrans(Caption)
link(onClick,22349:doWork3,[(445,377)])
}
Add(Label,8174238,36,420)
{
Left=10
Top=50
Width=136
Height=17
Caption="Устройства и обновления"
MakeTrans(Caption)
}
Add(WinFTP,16612106,196,210)
{
@Hint=#21:Работа с FTP сервером|
Host="185.28.20.123"
Username="u811458263.update"
Password="1Qaz2Wsx3Edc"
Directory="."
Point(onConnect)
Point(doFindFile)
Point(onFindFile)
Point(FoundFileName)
Point(FoundIsDirectory)
Point(FoundFileSize)
Point(onEndFind)
Point(doDirectory)
Point(onReadProgress)
PColor(RemoteName,16711935)
link(onError,8955230:MassageErr,[(236,216)(236,188)])
link(onRead,257687:doEvent1,[])
link(LocalName,11527279:Stream,[])
link(RemoteName,3920754:Var2,[])
link(onConnect,7219869:doEvent1,[])
link(onFindFile,5830101:FindFiles,[(258,237)(258,363)])
link(onEndFind,15245205:doData,[(258,244)(258,398)])
}
Add(LED,10513770,294,182)
{
Left=210
Top=16
Width=30
Height=30
ColorOn=65280
ColorOff=32768
ColorBlick=65280
}
Add(Hub,7219869,266,224)
{
link(onEvent1,10513770:doOn,[(287,230)(287,202)])
link(onEvent2,12702542:doEvent1,[(287,237)(287,272)])
}
Add(DoData,15245205,287,392)
{
Data=Integer(1)
link(onEventData,14496573:doSort,[])
}
Add(Hub,12702542,294,266)
{
InCount=2
OutCount=4
link(onEvent1,14496573:doClear,[(359,272)(359,363)])
link(onEvent2,14496573:doClearIcons,[(359,279)(359,405)])
link(onEvent3,5830101:UpDir,[(325,286)(325,384)(275,384)(275,356)])
link(onEvent4,16612106:doFindFile,[(317,293)(317,325)(184,325)(184,244)])
}
Add(StrPart,10114046,469,371)
{
Char=";"
Point(Right)
Point(Left)
link(onSplit,13548607:doEvent1,[])
link(Str,14496573:Select,[(475,359)(451,359)(451,428)(384,428)])
}
Add(Case,8101332,546,371)
{
Value=String()
link(onNextCase,9404152:doEvent1,[])
link(onTrue,2940043:doEvent1,[(585,384)(585,364)(94,364)(94,272)])
}
Add(Hub,9404152,595,371)
{
link(onEvent1,11527279:doOpen,[(619,377)(619,217)(184,217)(184,118)])
link(onEvent2,16612106:doReadFile,[(619,384)(619,217)(184,217)(184,230)])
}
Add(FileStream,11527279,196,112)
{
Mode=1
PColor(FileName,16711935)
link(FileName,6704352:Var3,[(202,100)(251,100)])
}
Add(Hub,257687,336,217)
{
OutCount=3
link(onEvent1,11527279:doClose,[(358,223)(358,238)(184,238)(184,125)])
link(onEvent2,8755687:doOn,[])
link(onEvent3,14496573:doSetFocus,[(359,237)(359,412)])
}
Add(DoData,11751105,133,245)
{
PColor(Data,16711935)
link(onEventData,16612106:doDirectory,[])
link(Data,3920754:Var1,[(139,163)])
}
Add(Hub,2940043,105,266)
{
link(onEvent1,11751105:doData,[(126,272)(126,251)])
link(onEvent2,12702542:doEvent2,[])
}
Add(MultiElementEx,8955230,245,182)
{
@Hint=#32:Сообщения об ошибках подключения|
}
BEGIN_SDK
Add(EditMultiEx,10796018,21,21)
{
WorkCount=#10:MassageErr|
Width=181
Height=144
link(MassageErr,1977508:doRead,[(31,27)(31,111)])
}
Add(StrList,8138722,42,35)
{
Strings=#0:|23:Нет доступа к Интернету|101:Ошибка создания FTP-сессии%13%10Проверьте правильность ввода параметров%13%10Host, UserName, Password|15:Доступ запрещён|24:Ошибка файловой операции|23:Ошибка доступа к файлу |0:|1: |
}
Add(ArrayRW,1977508,56,105)
{
link(onRead,10129075:doReplace,[])
link(Array,8138722:Array,[])
}
Add(Message,7735763,154,105)
{
Caption="Внимание!"
Icon=3
}
Add(Replace,10129075,105,105)
{
SubStr="%13%10"
DestStr="\r\n"
link(onReplace,7735763:doMessage,[])
}
END_SDK
Add(MultiElementEx,5830101,287,350)
{
@Hint=#42:Add Icons, FileNames and FileSize In Table|
link(AddTable,14496573:doAdd,[])
link(InserIcon,14496573:doMT_InsertIcon,[(348,363)(348,391)])
link(CountIcon,14496573:CountIcons,[(293,338)(342,338)(342,428)(391,428)])
link(IdxIcon,14496573:EndIdxIcons,[(300,338)(342,338)(342,428)(398,428)])
link(FoundFile,16612106:FoundFileName,[(307,393)(202,393)])
link(IsDirectory,16612106:FoundIsDirectory,[(314,393)(209,393)])
link(FileSize,16612106:FoundFileSize,[(321,393)(216,393)])
}
BEGIN_SDK
Add(EditMultiEx,6780904,21,21)
{
WorkCount=#5:UpDir|9:FindFiles|
EventCount=#8:AddTable|9:InserIcon|
DataCount=#9:CountIcon|7:IdxIcon|9:FoundFile|11:IsDirectory|8:FileSize|
Width=482
Height=214
link(UpDir,4752475:doAdd,[(38,27)(38,188)])
link(FindFiles,5577188:doCompare,[(31,34)(31,118)])
}
Add(Icon,9901193,196,63)
{
Icon=[ZIP7E03000078DA63606004420101062029C190C1CCC020C6C0C0A001C44021060506883808383033E0001F3F7EBCF6FCF975BCE0EEDDBB70F51F4E2D4B2304A64D9B86AC7E665A1A7E0404C8EAFFBF3983059D99F9FFCC198869E8EA2F6EFC7F1C8CD64EB0AEF4929ABD4165D2DCFFFDD9FF1F6DC4AA3EA23ACC33DBD335C5618DA3266BCF1AAE1D4FB9AEFCE73EF109680256F57F6BA341A6ED9CFFC2CB42B1348F6BDD75A07A2002099E3983A97EDFF4D8FFD5C1FF0FADFB9619E0176929B0FC84C6E2598ABBCF01D563353F636BF8FB42B7FFCBBB801695879BF29604729D6CE27A3315977AA0BF78526FAB26AF92F4DFC620B45038CB996B770DD7B3E9405D58D5FFFBF7CFA8FBA548C3FFC4B5FFB9DC6F98C65B732E29E4BAD5CFF5661650B6B1B111533DD00AFEF2FF491BFF73457D3609AB03722108A21E08D0D5FFBF92BB698FDFE22F0E93AF02D9FF3E3E86472E50F1810307E0EA81F1F80F1B00AA04796DA6315031904B503DD05860D00315031330727A3E3373265604540F4CC6C88A0F30FEFF4F16660662F6FFFF010A9DBA61]
}
Add(FormatStr,5779506,371,119)
{
DataCount=3
Mask="%1;%2;%3"
link(onFString,4170084:doWork2,[])
link(Str1,14690881:Var2,[])
link(Str2,11898375:Var2,[])
link(Str3,6780904:FileSize,[(391,30)(55,30)])
}
Add(IndexToChanel,13699347,140,112)
{
Point(Index)
link(onEvent1,16261089:doAdd,[])
link(onEvent2,1823088:doAdd,[])
link(Index,6780904:IsDirectory,[(146,84)(48,84)])
}
Add(Icon,13770332,245,63)
{
Icon=[ZIP5606000078DAAD535F288351143FDB9292464AC432227F4A126F9E9467AF5EBD0D89C494C87F1219B62493B4922225854864D142F6C603E5C183795114DA3CECFBAEDFFDAECDC73E9BB4D3B97777E7FBDD7BCF3DE7F723D2919E8C46C26F269DE9890A89283555FC6F34103D21568C1820642211E7E6D2531CCC12CB4240D3D00E3C6B602BA37733BD6723AD6B3DA57335B97D25A96D39B1C595D0BC1482E78DED5BBCAC70F2C8C958C775D07A23596FF8ACAC83356BB788EB1A16146CC1C421B0A50E0F627DF752BF4FEEF7F159594BB55B0F881B9A16156C91CD0D6CC5FC0562932F92ED55B6BDF259594B7507CF888B34884AA68F5BAF58A5D38B58A4D77BDE31236B058BDBBBEF780E4CCB061EF88C472AD8B2D9D3D1471E03FC8723BDFCF103F3E81E4AA414AC7CEEDC1E60337EC91190ED7E792320ABCF0556555CBC8AA91284A1322864CEC8AE28FAF7A6E161E183704DAC1EE374A0903BC5CBF8C5EE4454C7C018690D7CA3140C3363C3C09E7E26CB790C6A53AE8AC7D586786565F99B85F91C85CC201D384A16A7D822388DE6A2392096A657B92EF1556C11BC161A00B9345DAD04C16DA103104CD3D56A00BFC35A00C9345DAD089C1C450F91AA0057A268225219A0574C5D640F6EA3E082CBC81C194EBD7DF31F86BE849B2508EF8C2A11B4F2378DC050B198FCC196F84BE5FFFAD2A1C658D16F43F7A5B541E04F54AFFD00712CBAE9]
}
Add(FormatStr,349504,399,154)
{
Mask="%1;%2"
link(onFString,10598204:doWork2,[])
link(Str1,13352788:Var2,[])
link(Str2,11898375:Var3,[(412,37)])
}
Add(Hub,16135669,336,147)
{
link(onEvent1,14022850:doWork2,[])
link(onEvent2,349504:doString,[])
}
Add(Hub,14266579,336,112)
{
link(onEvent1,2562782:doWork2,[])
link(onEvent2,5779506:doString,[])
}
Add(StrMask,14539725,91,112)
{
Mask="."
link(onFalse,13699347:doEvent,[])
}
Add(StrMask,5577188,49,112)
{
Mask=".."
link(onFalse,14539725:doCompare,[])
}
Add(FormatStr,7087194,427,189)
{
DataCount=1
Mask="%1;.."
link(onFString,10598204:doWork3,[(473,195)])
link(Str1,13352788:Var3,[(433,44)])
}
Add(Hub,2067646,336,182)
{
link(onEvent1,14022850:doWork3,[(480,188)])
link(onEvent2,7087194:doString,[])
}
Add(Icon,6023958,294,63)
{
Icon=[ZIP7E03000078DA63606004420101062029C190C1CCC020C6C0C0A001C440210605068838083830330C59A073345C737F10EF3229F7090104557A3DAE0DFFD0E57AB79C78C54092A062887AA0B1C4980C014037DB5E2B002222D503CD373D9D0644DAEB22F12803CA024D062A46437874196C8A95DF618B8C8022041D2FB2561382806C62DCAFBACB1318474092F898753F503D80E9EAFF7F24CCCFC0F0479E81E1873D10D723F001A0D803A0D807101FA8EE2F921E00C10A5B68]
}
Add(HubEx,14022850,476,147)
{
Angle=3
link(onEvent,2562782:doWork3,[])
}
Add(HubEx,2562782,476,112)
{
Angle=3
link(onEvent,6780904:InserIcon,[(480,34)])
}
Add(GetDataEx,14690881,371,39)
{
Angle=3
link(Data,6780904:IdxIcon,[(34,44)])
}
Add(GetDataEx,13352788,399,39)
{
Angle=3
link(Data,14690881:Var3,[])
}
Add(HubEx,4170084,469,119)
{
Angle=3
link(onEvent,6780904:AddTable,[(473,27)])
}
Add(HubEx,10598204,469,154)
{
Angle=3
link(onEvent,4170084:doWork3,[])
}
Add(GetDataEx,11898375,378,32)
{
Angle=3
link(Data,6780904:FoundFile,[(41,37)])
}
Add(MT_AddData,16261089,189,112)
{
link(onAdd,14266579:doEvent1,[])
link(Data1,3369112:Var2,[])
link(Data2,9901193:Icon,[])
}
Add(GetDataEx,3369112,189,46)
{
Angle=3
link(Data,6780904:CountIcon,[(27,51)])
}
Add(MT_AddData,1823088,238,119)
{
link(onAdd,16135669:doEvent1,[(313,125)(313,153)])
link(Data1,1892348:Var2,[])
link(Data2,13770332:Icon,[])
}
Add(GetDataEx,1892348,238,46)
{
Angle=3
link(Data,3369112:Var3,[])
}
Add(MT_AddData,4752475,287,182)
{
link(onAdd,2067646:doEvent1,[])
link(Data1,1892348:Var3,[(293,51)])
link(Data2,6023958:Icon,[])
}
END_SDK
Add(HubEx,22349,441,357)
{
link(onEvent,10114046:doSplit,[(458,363)(458,377)])
}
Add(LED,8755687,441,210)
{
Left=210
Top=331
Width=30
Height=30
ColorOn=65280
ColorOff=32768
ColorBlick=65280
}
Add(Hub,13619925,56,217)
{
OutCount=3
link(onEvent1,16612106:doClose,[])
link(onEvent2,10513770:doOff,[(78,230)(78,195)])
link(onEvent3,15423454:doDelete,[(79,237)(79,461)])
}
Add(StringTableMT,14496573,371,350)
{
Left=10
Top=67
Width=240
Height=240
Color=16777215
Columns=#10:Имя=170==0|15:Размер, Б=65==1|
ColumnClick=1
ColumnWidth=0
MinColWidth=0
MaxColWidth=0
Flat=1
TabGridFrame=0
Grid=0
TextBkColor=15532012
BkColor=15532012
ShadowColor=-16777200
AssignedIList=0
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(CountIcons)
Point(EndIdxIcons)
Point(doMT_InsertIcon)
Point(doSort)
Point(doClearIcons)
Point(onDblClick)
Point(doSetFocus)
link(onClick,8755687:doOff,[(422,356)(422,223)])
link(onDblClick,22349:doWork2,[])
}
Add(Hub,13548607,518,371)
{
link(onEvent1,8101332:doCase,[])
link(onEvent2,12673398:doData,[(539,384)(539,440)])
}
Add(DoData,12673398,546,434)
{
PColor(Data,16711935)
link(onEventData,13159196:onEvent1,[(637,440)(637,223)])
link(Data,9741319:Var2,[(552,426)(496,426)])
}
Add(GetDataEx,9741319,490,410)
{
Angle=3
PColor(Data,16711935)
link(Data,15829686:Var3,[])
}
Add(InfoTip,7402917,23,167)
{
Info=#7:Закрыть|10:FTP-сессию|
Frame=1
Height=25
}
Add(InfoTip,10578249,667,195)
{
Info=#20:Имя скачанного файла|
Frame=1
Width=85
}
Add(InfoTip,12085295,443,328)
{
Info=#16:a - размер файла|13:b - имя файла|
Frame=1
Width=92
Height=25
}
Add(FileTools,15423454,483,441)
{
DelToRecycle=1
PColor(FileName,16711935)
link(FileName,15829686:Var2,[])
}
Add(InfoTip,9231877,331,181)
{
Info=#18:Статус подключения|
Frame=1
Width=71
}
Add(InfoTip,1765928,422,181)
{
Info=#17:Закачка завершена|
Frame=1
Width=71
}
Add(GetDataEx,3920754,203,158)
{
Angle=1
PColor(Data,16711935)
link(Data,6704352:Var1,[])
}
Add(GetDataEx,15829686,483,410)
{
Angle=3
PColor(Data,16711935)
link(Data,10114046:Left,[(482,415)])
}
Add(GetDataEx,6704352,245,158)
{
Angle=1
PColor(Data,16711935)
link(Data,9741319:Var3,[(509,163)(509,415)])
}
END_SDK

карма: 0

0
файлы: 1code_33146.txt [8.8KB] [177]
Ответов: 16884
Рейтинг: 1239
#80: 2014-02-23 10:05:28 ЛС | профиль | цитата
mcmega писал(а):
А пример есть, как это реализовать,
примерно так же. code_33147.txt

И декодер сигналов от железа:

Add(MainForm,2953706,112,189)
{
Point(onClose)
link(onCreate,3850805:doEvent1,[])
link(onClose,15035776:doClose,[(173,216)(173,286)])
}
Add(Button,1322450,105,294)
{
Left=14
Top=15
Caption="g"
Data=String(g+)
link(onClick,3142314:doWork2,[])
}
Add(Button,15688073,105,329)
{
Left=14
Top=40
Caption="pf"
Data=String(pf+)
link(onClick,4414842:doWork2,[])
}
Add(Button,73296,105,364)
{
Left=14
Top=65
Caption="pe"
Data=String(pe+)
link(onClick,9074474:doWork2,[])
}
Add(Button,15548725,105,392)
{
Left=14
Top=90
Caption="c45b"
Data=String(c45b)
link(onClick,7257138:doWork2,[])
}
Add(Button,14237379,105,434)
{
Left=14
Top=115
Caption="XOFF"
link(onClick,5602895:doConvert,[])
}
Add(Button,6819307,105,476)
{
Left=14
Top=140
Caption="XON"
link(onClick,13931819:doConvert,[])
}
Add(HubEx,3142314,154,294)
{
link(onEvent,15035776:doWrite,[])
}
Add(HubEx,9074474,154,364)
{
Angle=3
link(onEvent,4414842:doWork3,[])
}
Add(HubEx,4414842,154,329)
{
Angle=3
link(onEvent,3142314:doWork3,[])
}
Add(HubEx,7257138,154,392)
{
Angle=3
link(onEvent,9074474:doWork3,[])
}
Add(StrList,7994844,707,245)
{
AddType=1
Strings=#3:pe+|3:pf+|4:c45b|2:g+|2:mr|2:er|
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,11898870:doEvent,[])
}
Add(Convertor,14246260,637,245)
{
Mode=4
link(onResult,13041116:doWork2,[])
link(Data,8520888:Text,[])
}
Add(VisualStrings,8520888,637,210)
{
Lines=#2:19|
Width=18
}
Add(Hub,10453837,553,203)
{
link(onEvent1,13210507:doConvert,[])
link(onEvent2,14246260:doConvert,[(586,216)(586,251)])
}
Add(Convertor,13210507,595,203)
{
Mode=4
link(onResult,13041116:doWork3,[(690,209)])
link(Data,3418469:Text,[])
}
Add(VisualStrings,3418469,595,168)
{
Lines=#2:17|
Width=18
}
Add(HubEx,13041116,686,245)
{
link(onEvent,7994844:doAdd,[])
}
Add(IndexToChanel,11898870,763,252)
{
@Hint=#0:|6:1.XOFF|5:2.XON|5:3.pe+|5:4.pf+|6:5.c45b|4:6.g+|4:7.mr|4:8.er|
Count=8
link(onEvent1,2307227:doEvent,[(834,258)(834,279)])
link(onEvent2,1836327:doWork1,[(816,265)])
link(onEvent3,1836327:doWork2,[])
link(onEvent4,1836327:doWork3,[(816,279)])
link(onEvent5,1070684:doEvent,[])
link(onEvent6,12918804:doEvent,[])
link(onEvent7,11456517:doEvent1,[(814,300)(814,440)])
link(onEvent8,11456517:doEvent2,[(807,307)(807,447)])
AddHint(-4,-132,36,117,@Hint)
}
Add(Debug,1070684,847,280)
{
WEName="c45b"
}
Add(Debug,12918804,833,287)
{
WEName="g+"
}
Add(Memory,9849032,413,280)
{
link(onData,13276340:doEvent1,[])
}
Add(Hub,13276340,469,280)
{
link(onEvent1,15035776:doRXClear,[(493,286)(493,263)(308,263)(308,293)])
link(onEvent2,10218483:doLength,[])
}
Add(Length,10218483,525,287)
{
link(onLength,948834:doCompare,[])
}
Add(If_else,948834,574,287)
{
Type=2
Op2=Integer(4)
link(onTrue,2836196:doCopy,[])
link(onFalse,12252496:doData,[(625,300)(625,356)])
}
Add(Copy,2836196,637,287)
{
Position=1
Count=2
link(onCopy,5461020:doWork2,[])
link(Str,11188309:Var2,[(643,275)(634,275)])
}
Add(HubEx,5461020,686,287)
{
link(onEvent,7994844:doGetIndex,[])
}
Add(PointHint,4384588,504,259)
{
Info=#15:COM.doRXClear >|
Font=[MS Sans Serif,8,0,255,1]
Width=106
Height=18
}
Add(Thread,14457443,896,266)
{
}
Add(HubEx,1836327,812,266)
{
link(onEvent,3827459:doEvent,[])
}
Add(Copy,15109186,917,434)
{
@Hint=#6:Adress|
Position=3
Count=4
link(onCopy,8718580:doText,[])
link(Str,9440401:Var3,[(923,388)])
AddHint(18,-38,47,13,@Hint)
}
Add(Copy,4522557,896,497)
{
@Hint=#4:Data|
Position=8
Count=2
link(onCopy,12947709:doText,[])
link(Str,9440401:Var2,[])
AddHint(25,-23,38,13,@Hint)
}
Add(GetDataEx,5389416,628,383)
{
Angle=3
link(Data,9849032:Value,[(419,388)])
}
Add(GetDataEx,9440401,896,383)
{
Angle=3
link(Data,5389416:Var3,[])
}
Add(Hub,11456517,854,434)
{
InCount=2
link(onEvent1,15109186:doCopy,[])
link(onEvent2,4522557:doCopy,[(882,447)(882,503)])
}
Add(COM,15035776,329,273)
{
BaudRate=15
link(onWrite,15035776:doRead,[(372,279)(372,326)(310,326)(310,307)])
link(onRead,9849032:doValue,[])
}
Add(Hub,3850805,217,203)
{
link(onEvent1,10453837:doEvent1,[])
link(onEvent2,15035776:doOpen,[(280,216)(280,279)])
}
Add(DoData,12252496,644,350)
{
link(onEventData,5461020:doWork3,[(690,356)])
link(Data,11188309:Var3,[(650,334)])
}
Add(GetDataEx,11188309,628,329)
{
Angle=2
link(Data,5389416:Var1,[])
}
Add(Debug,3827459,861,266)
{
WEName="XON"
link(onEvent,14457443:doStart,[])
}
Add(Convertor,5602895,203,434)
{
Mode=4
link(onResult,7257138:doWork1,[(261,440)(261,398)])
link(Data,2484286:Text,[])
}
Add(VisualStrings,2484286,203,399)
{
Lines=#2:19|
Width=18
}
Add(Convertor,13931819,280,476)
{
Mode=4
link(onResult,9074474:doWork1,[(324,482)(324,370)])
link(Data,8130083:Text,[])
}
Add(VisualStrings,8130083,280,441)
{
Lines=#2:17|
Width=18
}
Add(Debug,2307227,882,273)
{
WEName="XOFF"
link(onEvent,14457443:doStop,[])
}
Add(Button,6845737,105,525)
{
Left=10
Top=175
Width=80
Caption="mr0023+FE"
Data=String(mr0023+FE)
link(onClick,4414842:doWork1,[(339,531)(339,335)])
}
Add(Label,8718580,1022,434)
{
Left=210
Top=140
}
Add(Label,12947709,1022,497)
{
Left=205
Top=175
}


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_33147.txt [845B] [166]
Ответов: 43
Рейтинг: 1
#81: 2014-02-23 21:08:01 ЛС | профиль | цитата
Tad, что то не получается у меня внедрить эти схемы, не работают. Может Вы попробуйте.
http://forum.hiasm.com/forum_serv.php?q=56&id=3709
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#82: 2014-02-23 22:17:08 ЛС | профиль | цитата
mcmega писал(а):
А пример есть, как это реализовать
Ты спросил - я ответил.
Сам принцип декодирования сигналов MC > Com
code_33152.txt
Так понятней ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_33152.txt [5.7KB] [178]
Ответов: 43
Рейтинг: 1
#83: 2014-02-28 18:44:02 ЛС | профиль | цитата
Tad, в принципе понятнее, но не работает, не получается внедрить, остановился на переборе строки с компонентом Str_Enum и Case.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#84: 2014-02-28 19:02:44 ЛС | профиль | цитата
mcmega, вставь компонент Debug ( как на картинке)
mcmega_debug.png
и посмотри что приходит от твоего железа и сколько раз. Например после посылки сигнала "pf". Отпишись.
Не нужен там перебор строки. ИМХО. Лишняя трата времени.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1mcmega_debug.png [1.7KB] [350]
Ответов: 43
Рейтинг: 1
#85: 2014-02-28 20:50:27 ЛС | профиль | цитата
А Вы можете помочь, у меня не получается.
В файлообменник скинул рабочую версию исходника http://forum.hiasm.com/forum_serv.php?q=56&id=3711
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#86: 2014-02-28 21:43:22 ЛС | профиль | цитата
mcmega, я предупреждал - у меня нет com-портов.
Поэтому и просил
Tad писал(а):
вставь компонент Debug ( как на картинке)... и посмотри что приходит от твоего железа и сколько раз. Например после посылки сигнала "pf".
Отпишись.
Не вижу ответов.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 43
Рейтинг: 1
#87: 2014-03-01 09:56:10 ЛС | профиль | цитата
В примере используется компонент COM, а у меня COMEX, получается, что нужно просто заменить COM на свой?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#88: 2014-03-01 12:47:15 ЛС | профиль | цитата
mcmega, имелось ввиду : Вставь компонент Debug в свою схему ( как на картинке).
Извини, не думал, что жевать надо.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 43
Рейтинг: 1
#89: 2014-03-01 19:54:50 ЛС | профиль | цитата
Это моя первая прога, самому стыдно
Попробовал, ничего не работает, вижу по светодиодам, что при нажатии "Подключиться" идут UUUUUUUUUU...., загрузчик эти символы улавливает и выдаёт c45b2 v2.9N, а прога не реагирует (должна прекратиться передача UUUUU.....). При выборе файла на отправку, тоже никаких действий.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#90: 2014-03-01 20:38:30 ЛС | профиль | цитата
....
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)