Вверх ↑
Этот топик читают: Гость
Ответов: 39
Рейтинг: 0
#1: 2024-07-05 19:43:35 ЛС | профиль | цитата
Здравствуйте. Ни у кого не было такой проблемы? В вин10 все работает нормально. в вин11 та же программа видит доступные ком порты, но при нажатии кнопки открыть ком порт, открытия не происходит. Пробовал программу скомпилированную и в вин10 и в вин11
карма: 0

0
Ответов: 39
Рейтинг: 0
#2: 2024-07-07 18:54:09 ЛС | профиль | цитата
Попробовал переходник с другой микросхемой, получилось открыть. Но вечная проблема с дроблением отправленной из устройства строки ком портом.
карма: 0

0
Ответов: 8921
Рейтинг: 823
#3: 2024-07-07 19:24:08 ЛС | профиль | цитата
andrewproffi, главами "Война и мир" Льва Николаевича делитесь Или команды такие длинные
Да и схему выложить не мешало бы.
карма: 19

0
Ответов: 98
Рейтинг: 1
#4: 2024-07-08 10:36:31 ЛС | профиль | цитата
Попробовал переходник с другой микросхемой, получилось открыть. Но вечная проблема с дроблением отправленной из устройства строки ком портом.

При приеме данных используйте "накопитель". И здесь уже потребуется определить начало-конец посылки после получения получения очередного "пакета" данных. Для распознания начала-конца посылки, как вариант, можно использовать компонет BlockFind. Если что-то посерьезнее, то это уже протокол обмена с командами и контрольными суммами (CRC).
Так же следует учитывать в каком типе данных собираетесь передавать данный (BIN, ANSI и т.д.)

Редактировалось 1 раз(а), последний 2024-07-08 10:38:07
карма: 0

0
Ответов: 39
Рейтинг: 0
#5: 2024-07-08 14:29:37 ЛС | профиль | цитата
в какой вкладке он находится? не могу найти.
Для парсинга использую BlockFind.
карма: 0

0
Ответов: 39
Рейтинг: 0
#6: 2024-07-08 19:50:32 ЛС | профиль | цитата
Леонид писал(а):
andrewproffi, главами "Война и мир" Льва Николаевича делитесь Или команды такие длинные
Да и схему выложить не мешало бы.

да гребанный форум, писал сообщение в итоге он вышел из аакаунта и удалил его.
пакет из 10 команд: 20 байт +пауза 5мс + 20 байт +пауза...
приходится дробить строку и делать паузы иначе хайасм ее обрежет сам и разобьет
программа терминал все принимает без проблем
>
Make(delphi)
ver(4.05 build 186)
Add(VisualShape,9619313,1453,669)
{
Left=520
Top=670
Width=490
Height=35
Color=-16777204
Color2=-16777204
}
Add(VisualShape,8992484,1502,718)
{
Left=520
Top=630
Width=490
Height=35
Color=65280
Color2=65280
}
Add(VisualShape,6621327,1488,634)
{
Left=520
Top=590
Width=490
Height=35
Color=255
Color2=255
}
Add(VisualShape,9461506,1484,679)
{
Left=520
Top=550
Width=490
Height=35
Color=0
Color2=0
}
Add(VisualShape,5432128,1435,182)
{
Left=15
Top=170
Width=120
Height=145
Ctl3D=0
}
Add(Image,3179763,1442,35)
{
Left=425
Top=5
Width=868
Height=533
Color=0
Visible=1
Point(doVisible)
}
Add(Hub,1978584,553,112)
{
OutCount=4
link(onEvent3,3673227:doEvent1,[(630,132)(630,167)])
link(onEvent4,16668560:doAdd,[(579,139)(579,265)(443,265)(443,391)])
}
Add(Label,3946155,427,63)
{
Left=45
Top=25
Width=0
Height=17
Color=-16777194
Caption="COM порт"
Alignment=2
}
Add(StyleXP,11046345,266,91)
{
}
Add(MainForm,14372191,91,238)
{
Left=200
Top=150
Width=1527
Height=737
Color=-16777194
Font=[Arial,8,0,0,1]
Ctl3D=0
Caption="test AKB"
BorderStyle=1
Point(doBringToFront)
Point(onSetFocus)
Point(onDblClick)
link(onActivate,15162287:doEvent1,[])
}
Add(Button,1842072,224,196)
{
Left=15
Top=110
Width=120
Height=30
Hint="Закрыть порт"
Caption="Закрыть порт"
Data=Real(0)
link(onClick,2365950:doClose,[(310,202)(310,223)])
}
Add(Button,13336586,224,238)
{
Left=15
Top=75
Width=120
Height=30
Hint="Открыть порт"
Caption="Открыть порт"
Data=Real(0)
link(onClick,2365950:doOpen,[(265,244)(265,216)])
}
Add(ComboBox,8670476,357,126)
{
Left=15
Top=47
Width=120
Height=21
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|0:|0:|
AddType=1
Text="Выберите порт"
ReadOnly=0
}
Add(COMEX,2365950,364,210)
{
BaudRate=18
link(onSyncRead,1978584:doEvent1,[(471,230)(471,118)])
link(Port,8670476:String,[])
}
Add(Button,1574390,147,133)
{
Left=15
Top=5
Width=120
Height=35
Hint="Открыть порта"
Caption="Поиск порт"
Data=Real(0)
link(onClick,8070816:doEvent1,[])
}
Add(EnumCOM,2173630,238,140)
{
OutType=0
link(onEnumPorts,8670476:doAdd,[(300,146)(300,132)])
}
Add(Hub,8070816,203,133)
{
InCount=2
OutCount=3
link(onEvent1,8670476:doClear,[])
link(onEvent2,2173630:doEnumPorts,[])
}
Add(Hub,15162287,147,238)
{
link(onEvent1,8070816:doEvent2,[(182,244)(182,146)])
}
Add(Button,7184611,1141,35)
{
Left=20
Top=180
Width=108
Height=40
Caption="Скриншот"
link(onClick,16364808:doCapture,[])
}
Add(Hub,2186279,1302,35)
{
link(onEvent1,3179763:doLoad,[])
link(onEvent2,3535410:doData,[(1326,48)(1326,55)])
}
Add(InlineCode,16364808,1253,35)
{
WorkPoints=#9:doCapture|
EventPoints=#5:onScr|
Code=#25:// autor andrestudio 2021|15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,windows,Share,Debug;|0:|5:const|12: PSIZE = 2;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|27: f1,f2,f3,f4: PControl;|16: t1: PTimer;|9: public|22: onScr: THI_Event;|51: procedure doCapture(var dt: TData; idx: word);|73: procedure onMouseDown(Sender: PControl; var Mouse: TMouseEventData);|71: procedure onMouseUp(Sender: PControl; var Mouse: TMouseEventData);|31: procedure Timer(Obj:PObj);|22: procedure GetBMP;|5: end;|0:|14:implementation|0:|29:procedure THiAsmClass.GetBMP;|3:var|10: dc: HDC;|19: Bmp: Kol.PBitmap;|19: w,h,x,y: integer;|14: pos: TPoint;|5:begin|18: dc := GetDC(0);|21: GetCursorPos(pos);|59: w := Max(f2.Left,f4.Left) - Min(f2.Left,f4.Left) -PSIZE;|55: h := Max(f1.Top,f3.Top) - Min(f1.Top,f3.Top) -PSIZE;|35: x := Min(f2.Left,f4.Left)+PSIZE;|33: y := Min(f1.Top,f3.Top)+PSIZE;|3: |25: Bmp := NewBitmap(w,h);|69: BitBlt(Bmp.Canvas.Handle,0,0,Bmp.Width,Bmp.Height,DC,x,y,SRCCOPY);|26: _hi_OnEvent(onScr,bmp);|23: bmp.CopyToClipboard;|12: bmp.Free;|54: // пришлось отказатся от пересоздания из за FPC |40: //f1.Free; f2.Free; f3.Free; f4.Free;|13: //t1.Free;|4:end;|0:|34:procedure THiAsmClass.onMouseDown;|5:begin|38: if Mouse.Button <> mbLeft then Exit;|14: t1.Tag := 2;|20: f3.Show; f4.Show; |4:end;|0:|32:procedure THiAsmClass.onMouseUp;|5:begin|38: if Mouse.Button <> mbLeft then Exit;|33: if f2.Left = f4.Left then Exit;|31: if f1.Top = f3.Top then Exit;|22: t1.Enabled := False;|37: f1.Hide; f2.Hide; f3.Hide; f4.Hide;|9: GetBMP;|4:end;|0:|38:procedure THiAsmClass.Timer(Obj:PObj);|3:var|14: pos: TPoint;|5:begin|20: GetCursorPos(pos);|21: if Obj.Tag = 1 then|7: begin|20: f1.Top := Pos.y;|21: f2.Left := Pos.x;|6: end;|21: if Obj.Tag = 2 then|7: begin|20: f3.Top := Pos.y;|21: f4.Left := Pos.x;|8: end; |4:end;|0:|32:procedure THiAsmClass.doCapture;|6:begin |34: if not Assigned(f1) then begin |28: f1 := NewForm(Applet,'');|22: f1.GetWindowHandle;|25: f1.Style := 101187584;|23: f1.ExStyle := 65536;|27: f1.Width := ScreenWidth;|22: f1.Height := PSIZE;|19: f1.Color := 255;|16: f1.Left := 0;|13: //f1.Show;|38: f1.onMouseDown := onMouseDown; end;|0:|34: if not Assigned(f2) then begin |28: f2 := NewForm(Applet,'');|22: f2.GetWindowHandle;|25: f2.Style := 101187584;|23: f2.ExStyle := 65536;|29: f2.Height := ScreenHeight;|21: f2.Width := PSIZE;|19: f2.Color := 255;|15: f2.Top := 0;|13: //f2.Show;|38: f2.onMouseDown := onMouseDown; end;|3: |35: if not Assigned(f3) then begin |28: f3 := NewForm(Applet,'');|22: f3.GetWindowHandle;|25: f3.Style := 101187584;|23: f3.ExStyle := 65536;|27: f3.Width := ScreenWidth;|22: f3.Height := PSIZE;|19: f3.Color := 255;|16: f3.Left := 0;|11: f3.Hide;|34: f3.onMouseUp := onMouseUp; end;|0:|34: if not Assigned(f4) then begin |28: f4 := NewForm(Applet,'');|22: f4.GetWindowHandle;|25: f4.Style := 101187584;|23: f4.ExStyle := 65536;|29: f4.Height := ScreenHeight;|21: f4.Width := PSIZE;|19: f4.Color := 255;|15: f4.Top := 0;|11: f4.Hide;|42: f4.onMouseUp := onMouseUp; end; |3: |34: if not Assigned(t1) then begin |22: t1 := NewTimer(25);|28: t1.OnTimer := Timer; end;|15: t1.Tag := 1;|23: t1.Enabled := True; |11: f1.Show;|16: f2.Show; |4:end;|0:|4:end.|
link(onScr,2186279:doEvent1,[])
}
Add(SDialog,12843375,1183,119)
{
Filter=".jpeg"
FileName=""
Point(doFileName)
link(onExecute,6649720:doEvent1,[])
}
Add(Button,2096136,1141,119)
{
Left=20
Top=225
Width=110
Height=40
Caption="Сохранить картинку"
Point(doVisible)
link(onClick,12843375:doExecute,[])
}
Add(StrCat,864988,1253,126)
{
Str2=".jpeg"
link(onStrCat,3599384:doEvent1,[])
link(Str1,15696856:GetData,[])
}
Add(EventFromData,15696856,1253,77)
{
}
Add(Hub,6649720,1225,119)
{
link(onEvent1,15696856:doData,[(1246,125)(1246,83)])
link(onEvent2,864988:doStrCat,[])
}
Add(PictureStream,8303435,1435,119)
{
link(Bitmap,3179763:ImageBitmap,[])
}
Add(DoData,3535410,1337,49)
{
Data=Integer(1)
link(onEventData,15356796:doEvent1,[])
}
Add(Hub,3599384,1302,126)
{
link(onEvent1,8303435:doSave,[])
link(onEvent2,2824840:doData,[])
}
Add(DoData,2824840,1337,133)
{
Data=Integer(0)
link(onEventData,15356796:doEvent2,[(1385,139)(1385,62)])
}
Add(Hub,15356796,1407,49)
{
InCount=3
OutCount=1
link(onEvent1,3179763:doVisible,[])
}
Add(Button,5182486,1141,175)
{
Left=20
Top=270
Width=110
Height=35
Caption="Отмена"
Data=Integer(0)
Point(doVisible)
link(onClick,15356796:doEvent3,[(1395,181)(1395,69)])
}
Add(Edit,11229754,1358,259)
{
Left=390
Width=960
Height=30
Font=[GOST type B,14,1,0,204]
Visible=1
Text=""
Alignment=2
ClearAfterEnter=1
Point(doVisible)
}
Add(CheckBox,3004579,1309,259)
{
Left=20
Top=360
Width=110
Color=-16777194
Caption="Добавить подпись"
link(onCheck,11229754:doVisible,[(1349,265)(1349,279)])
}
Add(BlockFind,9088038,749,161)
{
IncludeBlock=1
StartBlock="N1="
EndBlock="n"
link(onSearch,5789015:doText,[])
}
Add(Edit,5789015,798,161)
{
Left=910
Top=550
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="n1"
Text=""
Alignment=2
DataType=4
ReadOnly=0
}
Add(BlockFind,15662643,749,217)
{
IncludeBlock=1
StartBlock="N2="
EndBlock="n"
Point(doStop)
link(onSearch,12165363:doText,[])
}
Add(Edit,12165363,798,217)
{
Left=910
Top=590
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="n2"
Text=""
Alignment=2
DataType=4
ReadOnly=0
}
Add(BlockFind,2182903,749,273)
{
IncludeBlock=1
StartBlock="N3="
EndBlock="n"
Point(doStop)
link(onSearch,10962526:doText,[])
}
Add(Edit,10962526,798,273)
{
Left=910
Top=630
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="n3"
Text=""
Alignment=2
DataType=4
ReadOnly=0
}
Add(BlockFind,5390850,749,329)
{
IncludeBlock=1
StartBlock="N4="
EndBlock="n"
Point(doStop)
link(onSearch,16219502:doText,[])
}
Add(Edit,16219502,798,329)
{
Left=910
Top=670
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="n4"
Text=""
Alignment=2
DataType=4
ReadOnly=0
}
Add(Hub,3673227,693,161)
{
OutCount=8
link(onEvent1,9088038:doSearch,[])
link(onEvent2,15662643:doSearch,[(728,174)(728,223)])
link(onEvent3,2182903:doSearch,[(728,181)(728,279)])
link(onEvent4,5390850:doSearch,[(728,188)(728,335)])
link(onEvent5,10450601:doSearch,[(728,195)(728,384)])
link(onEvent6,9198612:doSearch,[(728,202)(728,440)])
link(onEvent7,3078973:doSearch,[(728,209)(728,496)])
link(onEvent8,12154479:doSearch,[(728,216)(728,552)])
}
Add(Label,819423,252,581)
{
Left=540
Top=530
Width=68
Height=17
Color=-16777194
Caption="Напряжение"
}
Add(Label,33608,249,578)
{
Left=660
Top=530
Width=23
Height=17
Color=-16777194
Caption="Ток"
}
Add(Label,11948939,242,571)
{
Left=740
Top=530
Width=48
Height=17
Color=-16777194
Caption="Емкость"
}
Add(Label,13044191,235,564)
{
Left=841
Top=531
Width=37
Height=17
Color=-16777194
Caption="Время"
}
Add(Label,14869141,228,557)
{
Left=915
Top=530
Width=77
Height=17
Color=-16777194
Caption="Кол-во циклов"
}
Add(Label,10869640,247,652)
{
Left=505
Top=555
Width=12
Height=25
Color=-16777194
Font=[GOST type B,14,1,0,204]
Caption="1"
}
Add(Label,5438268,246,650)
{
Left=505
Top=595
Width=14
Height=25
Color=-16777194
Font=[GOST type B,14,1,0,204]
Caption="2"
}
Add(Label,3258498,239,643)
{
Left=505
Top=635
Width=14
Height=25
Color=-16777194
Font=[GOST type B,14,1,0,204]
Caption="3"
}
Add(Label,16389299,232,636)
{
Left=505
Top=675
Width=15
Height=25
Color=-16777194
Font=[GOST type B,14,1,0,204]
Caption="4"
}
Add(BlockFind,10450601,749,378)
{
IncludeBlock=1
StartBlock="R1="
EndBlock="m"
link(onSearch,8061186:doText,[])
}
Add(Edit,8061186,798,378)
{
Left=1005
Top=550
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="R1"
Text=""
Alignment=2
DataType=4
ReadOnly=0
}
Add(BlockFind,9198612,749,434)
{
IncludeBlock=1
StartBlock="R2="
EndBlock="m"
Point(doStop)
link(onSearch,11581458:doText,[])
}
Add(Edit,11581458,798,434)
{
Left=1005
Top=590
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="R2"
Text=""
Alignment=2
DataType=4
ReadOnly=0
}
Add(BlockFind,3078973,749,490)
{
IncludeBlock=1
StartBlock="R3="
EndBlock="m"
Point(doStop)
link(onSearch,10972951:doText,[])
}
Add(Edit,10972951,798,490)
{
Left=1005
Top=630
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="R3"
Text=""
Alignment=2
DataType=4
ReadOnly=0
}
Add(BlockFind,12154479,749,546)
{
IncludeBlock=1
StartBlock="R4="
EndBlock="m"
Point(doStop)
link(onSearch,6602635:doText,[])
}
Add(Edit,6602635,798,546)
{
Left=1005
Top=670
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="R4"
Text=""
Alignment=2
DataType=4
ReadOnly=0
}
Add(Label,3568395,222,551)
{
Left=1010
Top=530
Width=82
Height=17
Color=-16777194
Caption="Сопротивление"
}
Add(SDialog,11161239,301,413)
{
Filter=".txt"
FileName=""
Point(doFileName)
link(onExecute,11114417:doEvent1,[])
}
Add(Button,12598604,259,413)
{
Left=15
Top=400
Width=120
Height=40
Caption="Сохранить текст"
Point(doVisible)
link(onClick,11161239:doExecute,[])
}
Add(StrCat,11940027,371,420)
{
Str2=".txt"
link(onStrCat,16668560:doSave,[])
link(Str1,6746969:GetData,[])
}
Add(EventFromData,6746969,371,371)
{
}
Add(Hub,11114417,343,413)
{
link(onEvent1,6746969:doData,[(364,419)(364,377)])
link(onEvent2,11940027:doStrCat,[])
}
Add(Memo,16668560,455,385)
{
Left=5
Top=515
Width=495
Height=190
ScrollBars=2
Point(doSave)
}
Add(Edit,13831158,133,553)
{
Left=1305
Top=590
Width=120
Height=30
Font=[MS Sans Serif,10,1,0,1]
Name="n1"
Text=""
Alignment=2
DataType=4
link(onEnter,2147313:doEvent6,[(181,566)(181,412)])
}
Add(Button,1428091,140,336)
{
Left=1305
Top=550
Width=120
Height=30
Hint="Открыть порт"
Caption="Режим тестирования"
Data=Integer(252)
link(onClick,2147313:doEvent1,[(184,342)(184,377)])
}
Add(Button,14506433,140,378)
{
Left=1165
Top=655
Width=120
Height=30
Hint="Открыть порт"
Caption="пропустить паузу"
Data=Integer(131)
link(onClick,2147313:doEvent2,[])
}
Add(Button,10368005,140,420)
{
Left=1165
Top=620
Width=120
Height=30
Hint="Открыть порт"
Caption="режим разряда"
Data=Integer(132)
link(onClick,2147313:doEvent3,[(184,426)(184,391)])
}
Add(Button,15944908,140,462)
{
Left=1165
Top=585
Width=120
Height=30
Hint="режим заряда"
Caption="режим заряда"
Data=Integer(133)
link(onClick,2147313:doEvent4,[(184,468)(184,398)])
}
Add(Hub,2147313,196,371)
{
InCount=6
OutCount=1
link(onEvent1,2365950:doWrite,[(287,377)(287,230)])
}
Add(Button,13074427,137,508)
{
Left=1165
Top=550
Width=120
Height=30
Hint="Открыть порт"
Caption="тест полной емкости"
Data=Integer(123)
link(onClick,2147313:doEvent5,[(183,514)(183,405)])
}

Редактировалось 1 раз(а), последний 2024-07-08 19:53:06
карма: 0

0
Ответов: 494
Рейтинг: 163
#7: 2024-07-08 21:58:20 ЛС | профиль | цитата
andrewproffi, ПРИВЕТСТВУЕМ Вас )
Стилистика схемы очень похожа на RADIOSOFT
Зачем у Вас перечисление портов при активации формы
tESTakb.jpg
Судя по Вашему скрину протокол вы пишите сами, значит его можно видоизменять)
Как вариант в начале пакета слать "старт" в конце пакета "стоп"
использовать конструкцию наподобие такой

Add(StrMask,13266337,490,112)
{
CaseSensitive=0
Mask="*START*"
link(onTrue,5972285:doClear,[(558,125)(558,223)])
AddHint(76,18,59,13,Mask)
}
Add(Hub,3009133,434,154)
{
OutCount=3
link(onEvent1,15952440:doCompare,[])
link(onEvent2,5972285:doStrCat,[(460,167)(460,216)])
link(onEvent3,13266337:doCompare,[(469,174)(469,118)])
}
Add(StrMask,15952440,490,154)
{
CaseSensitive=0
Mask="*STOP*"
link(onTrue,5144881:doData,[(544,167)(544,293)])
AddHint(80,15,52,13,Mask)
}
Add(StrCat,5972285,595,210)
{
Point(doClear)
link(Str1,841062:Var3,[(601,198)(573,198)])
}
Add(DoData,5144881,567,287)
{
link(onEventData,9606020:In,[])
link(Data,841062:Var2,[])
}
Add(GetDataEx,841062,567,245)
{
Angle=1
link(Data,5972285:Result,[(601,250)])
}
Add(LineBreak,6719879,385,154)
{
Caption="in"
link(Out,3009133:doEvent1,[])
Primary=[13317968,-35,0]
}
Add(LineBreak,13604023,651,287)
{
Caption="out"
Primary=[9606020,-42,0]
}


Редактировалось 1 раз(а), последний 2024-07-08 22:33:12
карма: 4

0
Ответов: 4628
Рейтинг: 749
#8: 2024-07-08 22:17:46 ЛС | профиль | цитата
strannik_nebes писал(а):
При приеме данных используйте "накопитель". И здесь уже потребуется определить начало-конец посылки после получения получения очередного "пакета" данных

Может помочь DataAccumulator
карма: 26

0
Ответов: 98
Рейтинг: 1
#9: 2024-07-09 08:13:21 ЛС | профиль | цитата
andrewproffi писал(а):
andrewproffi
Как вариант
Add(VisualShape,9619313,1691,921)
{
Left=520
Top=670
Width=490
Height=35
Color=-16777204
Color2=-16777204
}
Add(VisualShape,8992484,1740,970)
{
Left=520
Top=630
Width=490
Height=35
Color=65280
Color2=65280
}
Add(VisualShape,6621327,1726,886)
{
Left=520
Top=590
Width=490
Height=35
Color=255
Color2=255
}
Add(VisualShape,9461506,1722,931)
{
Left=520
Top=550
Width=490
Height=35
Color=0
Color2=0
}
Add(VisualShape,5432128,1673,434)
{
Left=15
Top=170
Width=120
Height=145
Ctl3D=0
}
Add(Image,3179763,1680,287)
{
Left=425
Top=5
Width=868
Height=533
Color=0
Visible=1
Point(doVisible)
}
Add(Hub,1978584,791,364)
{
OutCount=4
link(onEvent1,9088038:doSearch,[(896,370)(896,419)])
link(onEvent3,8638450:doStrCat,[(868,384)(868,335)])
link(onEvent4,16668560:doAdd,[(817,391)(817,517)(681,517)(681,643)])
}
Add(Label,3946155,665,315)
{
Left=45
Top=25
Width=0
Height=17
Color=-16777194
Caption="COM порт"
Alignment=2
}
Add(StyleXP,11046345,504,343)
{
}
Add(MainForm,14372191,329,490)
{
Left=200
Top=150
Width=1527
Height=737
Color=-16777194
Font=[Arial,8,0,0,1]
Ctl3D=0
Caption="test AKB"
BorderStyle=1
Point(doBringToFront)
Point(onSetFocus)
Point(onDblClick)
link(onCreate,15162287:doEvent1,[(373,510)(373,496)])
}
Add(Button,1842072,462,448)
{
Left=15
Top=110
Width=120
Height=30
Hint="Закрыть порт"
Caption="Закрыть порт"
Data=Real(0)
link(onClick,2365950:doClose,[(548,454)(548,475)])
}
Add(Button,13336586,462,490)
{
Left=15
Top=75
Width=120
Height=30
Hint="Открыть порт"
Caption="Открыть порт"
Data=Real(0)
link(onClick,2365950:doOpen,[(503,496)(503,468)])
}
Add(ComboBox,8670476,595,378)
{
Left=15
Top=47
Width=120
Height=21
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|0:|0:|
AddType=1
Text="Выберите порт"
ReadOnly=0
}
Add(COMEX,2365950,602,462)
{
BaudRate=18
link(onSyncRead,1978584:doEvent1,[(709,482)(709,370)])
link(Port,8670476:String,[])
}
Add(Button,1574390,385,385)
{
Left=15
Top=5
Width=120
Height=35
Hint="Открыть порта"
Caption="Поиск порт"
Data=Real(0)
link(onClick,8070816:doEvent1,[])
}
Add(EnumCOM,2173630,476,392)
{
OutType=0
link(onEnumPorts,8670476:doAdd,[(538,398)(538,384)])
}
Add(Hub,8070816,441,385)
{
InCount=2
OutCount=3
link(onEvent1,8670476:doClear,[])
link(onEvent2,2173630:doEnumPorts,[])
}
Add(Hub,15162287,385,490)
{
link(onEvent1,8070816:doEvent2,[(420,496)(420,398)])
}
Add(Button,7184611,1379,287)
{
Left=20
Top=180
Width=108
Height=40
Caption="Скриншот"
link(onClick,16364808:doCapture,[])
}
Add(Hub,2186279,1540,287)
{
link(onEvent1,3179763:doLoad,[])
link(onEvent2,3535410:doData,[(1564,300)(1564,307)])
}
Add(InlineCode,16364808,1491,287)
{
WorkPoints=#9:doCapture|
EventPoints=#5:onScr|
Code=#25:// autor andrestudio 2021|15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,windows,Share,Debug;|0:|5:const|12: PSIZE = 2;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|27: f1,f2,f3,f4: PControl;|16: t1: PTimer;|9: public|22: onScr: THI_Event;|51: procedure doCapture(var dt: TData; idx: word);|73: procedure onMouseDown(Sender: PControl; var Mouse: TMouseEventData);|71: procedure onMouseUp(Sender: PControl; var Mouse: TMouseEventData);|31: procedure Timer(Obj:PObj);|22: procedure GetBMP;|5: end;|0:|14:implementation|0:|29:procedure THiAsmClass.GetBMP;|3:var|10: dc: HDC;|19: Bmp: Kol.PBitmap;|19: w,h,x,y: integer;|14: pos: TPoint;|5:begin|18: dc := GetDC(0);|21: GetCursorPos(pos);|59: w := Max(f2.Left,f4.Left) - Min(f2.Left,f4.Left) -PSIZE;|55: h := Max(f1.Top,f3.Top) - Min(f1.Top,f3.Top) -PSIZE;|35: x := Min(f2.Left,f4.Left)+PSIZE;|33: y := Min(f1.Top,f3.Top)+PSIZE;|3: |25: Bmp := NewBitmap(w,h);|69: BitBlt(Bmp.Canvas.Handle,0,0,Bmp.Width,Bmp.Height,DC,x,y,SRCCOPY);|26: _hi_OnEvent(onScr,bmp);|23: bmp.CopyToClipboard;|12: bmp.Free;|54: // пришлось отказатся от пересоздания из за FPC |40: //f1.Free; f2.Free; f3.Free; f4.Free;|13: //t1.Free;|4:end;|0:|34:procedure THiAsmClass.onMouseDown;|5:begin|38: if Mouse.Button <> mbLeft then Exit;|14: t1.Tag := 2;|20: f3.Show; f4.Show; |4:end;|0:|32:procedure THiAsmClass.onMouseUp;|5:begin|38: if Mouse.Button <> mbLeft then Exit;|33: if f2.Left = f4.Left then Exit;|31: if f1.Top = f3.Top then Exit;|22: t1.Enabled := False;|37: f1.Hide; f2.Hide; f3.Hide; f4.Hide;|9: GetBMP;|4:end;|0:|38:procedure THiAsmClass.Timer(Obj:PObj);|3:var|14: pos: TPoint;|5:begin|20: GetCursorPos(pos);|21: if Obj.Tag = 1 then|7: begin|20: f1.Top := Pos.y;|21: f2.Left := Pos.x;|6: end;|21: if Obj.Tag = 2 then|7: begin|20: f3.Top := Pos.y;|21: f4.Left := Pos.x;|8: end; |4:end;|0:|32:procedure THiAsmClass.doCapture;|6:begin |34: if not Assigned(f1) then begin |28: f1 := NewForm(Applet,'');|22: f1.GetWindowHandle;|25: f1.Style := 101187584;|23: f1.ExStyle := 65536;|27: f1.Width := ScreenWidth;|22: f1.Height := PSIZE;|19: f1.Color := 255;|16: f1.Left := 0;|13: //f1.Show;|38: f1.onMouseDown := onMouseDown; end;|0:|34: if not Assigned(f2) then begin |28: f2 := NewForm(Applet,'');|22: f2.GetWindowHandle;|25: f2.Style := 101187584;|23: f2.ExStyle := 65536;|29: f2.Height := ScreenHeight;|21: f2.Width := PSIZE;|19: f2.Color := 255;|15: f2.Top := 0;|13: //f2.Show;|38: f2.onMouseDown := onMouseDown; end;|3: |35: if not Assigned(f3) then begin |28: f3 := NewForm(Applet,'');|22: f3.GetWindowHandle;|25: f3.Style := 101187584;|23: f3.ExStyle := 65536;|27: f3.Width := ScreenWidth;|22: f3.Height := PSIZE;|19: f3.Color := 255;|16: f3.Left := 0;|11: f3.Hide;|34: f3.onMouseUp := onMouseUp; end;|0:|34: if not Assigned(f4) then begin |28: f4 := NewForm(Applet,'');|22: f4.GetWindowHandle;|25: f4.Style := 101187584;|23: f4.ExStyle := 65536;|29: f4.Height := ScreenHeight;|21: f4.Width := PSIZE;|19: f4.Color := 255;|15: f4.Top := 0;|11: f4.Hide;|42: f4.onMouseUp := onMouseUp; end; |3: |34: if not Assigned(t1) then begin |22: t1 := NewTimer(25);|28: t1.OnTimer := Timer; end;|15: t1.Tag := 1;|23: t1.Enabled := True; |11: f1.Show;|16: f2.Show; |4:end;|0:|4:end.|
link(onScr,2186279:doEvent1,[])
}
Add(SDialog,12843375,1421,371)
{
Filter=".jpeg"
FileName=""
Point(doFileName)
link(onExecute,6649720:doEvent1,[])
}
Add(Button,2096136,1379,371)
{
Left=20
Top=225
Width=110
Height=40
Caption="Сохранить картинку"
Point(doVisible)
link(onClick,12843375:doExecute,[])
}
Add(StrCat,864988,1491,378)
{
Str2=".jpeg"
link(onStrCat,3599384:doEvent1,[])
link(Str1,15696856:GetData,[])
}
Add(EventFromData,15696856,1491,329)
{
}
Add(Hub,6649720,1463,371)
{
link(onEvent1,15696856:doData,[(1484,377)(1484,335)])
link(onEvent2,864988:doStrCat,[])
}
Add(PictureStream,8303435,1673,371)
{
link(Bitmap,3179763:ImageBitmap,[])
}
Add(DoData,3535410,1575,301)
{
Data=Integer(1)
link(onEventData,15356796:doEvent1,[])
}
Add(Hub,3599384,1540,378)
{
link(onEvent1,8303435:doSave,[])
link(onEvent2,2824840:doData,[])
}
Add(DoData,2824840,1575,385)
{
Data=Integer(0)
link(onEventData,15356796:doEvent2,[(1623,391)(1623,314)])
}
Add(Hub,15356796,1645,301)
{
InCount=3
OutCount=1
link(onEvent1,3179763:doVisible,[])
}
Add(Button,5182486,1379,427)
{
Left=20
Top=270
Width=110
Height=35
Caption="Отмена"
Data=Integer(0)
Point(doVisible)
link(onClick,15356796:doEvent3,[(1633,433)(1633,321)])
}
Add(Edit,11229754,1596,511)
{
Left=390
Width=960
Height=30
Font=[GOST type B,14,1,0,204]
Visible=1
Text=""
Alignment=2
ClearAfterEnter=1
Point(doVisible)
}
Add(CheckBox,3004579,1547,511)
{
Left=20
Top=360
Width=110
Color=-16777194
Caption="Добавить подпись"
link(onCheck,11229754:doVisible,[(1587,517)(1587,531)])
}
Add(BlockFind,9088038,987,413)
{
IncludeBlock=1
StartBlock="N1="
EndBlock="n"
Point(onNotFind)
link(onSearch,5789015:doText,[])
link(Text,16020354:Var3,[(993,387)])
link(onNotFind,15662643:doSearch,[(1031,433)(1031,454)(975,454)(975,475)])
}
Add(Edit,5789015,1036,413)
{
Left=910
Top=550
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="n1"
Text=""
Alignment=2
DataType=4
ReadOnly=0
link(onChange,15862282:doWork2,[])
}
Add(BlockFind,15662643,987,469)
{
IncludeBlock=1
StartBlock="N2="
EndBlock="n"
Point(doStop)
Point(onNotFind)
link(onSearch,12165363:doText,[])
link(Text,8058839:Var3,[(993,430)])
link(onNotFind,2182903:doSearch,[(1031,489)(1031,510)(975,510)(975,531)])
}
Add(Edit,12165363,1036,469)
{
Left=910
Top=590
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="n2"
Text=""
Alignment=2
DataType=4
ReadOnly=0
link(onChange,16243796:doWork2,[])
}
Add(BlockFind,2182903,987,525)
{
IncludeBlock=1
StartBlock="N3="
EndBlock="n"
Point(doStop)
Point(onNotFind)
link(onSearch,10962526:doText,[])
link(Text,6663987:Var3,[(993,479)])
link(onNotFind,5390850:doSearch,[(1031,545)(1031,566)(975,566)(975,587)])
}
Add(Edit,10962526,1036,525)
{
Left=910
Top=630
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="n3"
Text=""
Alignment=2
DataType=4
ReadOnly=0
link(onChange,14432459:doWork2,[])
}
Add(BlockFind,5390850,987,581)
{
IncludeBlock=1
StartBlock="N4="
EndBlock="n"
Point(doStop)
Point(onNotFind)
link(onSearch,16219502:doText,[])
link(Text,7257219:Var3,[(993,532)])
link(onNotFind,10450601:doSearch,[(1031,601)(1031,619)(975,619)(975,636)])
}
Add(Edit,16219502,1036,581)
{
Left=910
Top=670
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="n4"
Text=""
Alignment=2
DataType=4
ReadOnly=0
link(onChange,14441520:doWork2,[])
}
Add(Label,819423,490,833)
{
Left=540
Top=530
Width=68
Height=17
Color=-16777194
Caption="Напряжение"
}
Add(Label,33608,487,830)
{
Left=660
Top=530
Width=23
Height=17
Color=-16777194
Caption="Ток"
}
Add(Label,11948939,480,823)
{
Left=740
Top=530
Width=48
Height=17
Color=-16777194
Caption="Емкость"
}
Add(Label,13044191,473,816)
{
Left=841
Top=531
Width=37
Height=17
Color=-16777194
Caption="Время"
}
Add(Label,14869141,466,809)
{
Left=915
Top=530
Width=77
Height=17
Color=-16777194
Caption="Кол-во циклов"
}
Add(Label,10869640,485,904)
{
Left=505
Top=555
Width=12
Height=25
Color=-16777194
Font=[GOST type B,14,1,0,204]
Caption="1"
}
Add(Label,5438268,484,902)
{
Left=505
Top=595
Width=14
Height=25
Color=-16777194
Font=[GOST type B,14,1,0,204]
Caption="2"
}
Add(Label,3258498,477,895)
{
Left=505
Top=635
Width=14
Height=25
Color=-16777194
Font=[GOST type B,14,1,0,204]
Caption="3"
}
Add(Label,16389299,470,888)
{
Left=505
Top=675
Width=15
Height=25
Color=-16777194
Font=[GOST type B,14,1,0,204]
Caption="4"
}
Add(BlockFind,10450601,987,630)
{
IncludeBlock=1
StartBlock="R1="
EndBlock="m"
Point(onNotFind)
link(onSearch,8061186:doText,[])
link(Text,2189735:Var3,[(993,583)])
link(onNotFind,9198612:doSearch,[(1031,650)(1031,671)(975,671)(975,692)])
}
Add(Edit,8061186,1036,630)
{
Left=1005
Top=550
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="R1"
Text=""
Alignment=2
DataType=4
ReadOnly=0
link(onChange,984718:doWork2,[])
}
Add(BlockFind,9198612,987,686)
{
IncludeBlock=1
StartBlock="R2="
EndBlock="m"
Point(doStop)
Point(onNotFind)
link(onSearch,11581458:doText,[])
link(Text,13512767:Var3,[(993,643)])
link(onNotFind,3078973:doSearch,[(1031,706)(1031,727)(975,727)(975,748)])
}
Add(Edit,11581458,1036,686)
{
Left=1005
Top=590
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="R2"
Text=""
Alignment=2
DataType=4
ReadOnly=0
link(onChange,12437849:doWork2,[])
}
Add(BlockFind,3078973,987,742)
{
IncludeBlock=1
StartBlock="R3="
EndBlock="m"
Point(doStop)
Point(onNotFind)
link(onSearch,10972951:doText,[])
link(Text,4233646:Var3,[(993,691)])
link(onNotFind,12154479:doSearch,[(1031,762)(1031,783)(975,783)(975,804)])
}
Add(Edit,10972951,1036,742)
{
Left=1005
Top=630
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="R3"
Text=""
Alignment=2
DataType=4
ReadOnly=0
link(onChange,7639570:doWork2,[])
}
Add(BlockFind,12154479,987,798)
{
IncludeBlock=1
StartBlock="R4="
EndBlock="m"
Point(doStop)
Point(onNotFind)
link(onSearch,6602635:doText,[])
link(Text,4233646:Var2,[(993,746)(958,746)])
}
Add(Edit,6602635,1036,798)
{
Left=1005
Top=670
Width=90
Height=35
Font=[MS Sans Serif,14,1,0,1]
Enabled=1
Name="R4"
Text=""
Alignment=2
DataType=4
ReadOnly=0
link(onChange,7639570:doWork3,[(1080,804)])
}
Add(Label,3568395,460,803)
{
Left=1010
Top=530
Width=82
Height=17
Color=-16777194
Caption="Сопротивление"
}
Add(SDialog,11161239,539,665)
{
Filter=".txt"
FileName=""
Point(doFileName)
link(onExecute,11114417:doEvent1,[])
}
Add(Button,12598604,497,665)
{
Left=15
Top=400
Width=120
Height=40
Caption="Сохранить текст"
Point(doVisible)
link(onClick,11161239:doExecute,[])
}
Add(StrCat,11940027,609,672)
{
Str2=".txt"
link(onStrCat,16668560:doSave,[])
link(Str1,6746969:GetData,[])
}
Add(EventFromData,6746969,609,623)
{
}
Add(Hub,11114417,581,665)
{
link(onEvent1,6746969:doData,[(602,671)(602,629)])
link(onEvent2,11940027:doStrCat,[])
}
Add(Memo,16668560,693,637)
{
Left=5
Top=515
Width=495
Height=190
ScrollBars=2
Point(doSave)
}
Add(Edit,13831158,371,805)
{
Left=1305
Top=590
Width=120
Height=30
Font=[MS Sans Serif,10,1,0,1]
Name="n1"
Text=""
Alignment=2
DataType=4
link(onEnter,2147313:doEvent6,[(419,818)(419,664)])
}
Add(Button,1428091,378,588)
{
Left=1305
Top=550
Width=120
Height=30
Hint="Открыть порт"
Caption="Режим тестирования"
Data=Integer(252)
link(onClick,2147313:doEvent1,[(422,594)(422,629)])
}
Add(Button,14506433,378,630)
{
Left=1165
Top=655
Width=120
Height=30
Hint="Открыть порт"
Caption="пропустить паузу"
Data=Integer(131)
link(onClick,2147313:doEvent2,[])
}
Add(Button,10368005,378,672)
{
Left=1165
Top=620
Width=120
Height=30
Hint="Открыть порт"
Caption="режим разряда"
Data=Integer(132)
link(onClick,2147313:doEvent3,[(422,678)(422,643)])
}
Add(Button,15944908,378,714)
{
Left=1165
Top=585
Width=120
Height=30
Hint="режим заряда"
Caption="режим заряда"
Data=Integer(133)
link(onClick,2147313:doEvent4,[(422,720)(422,650)])
}
Add(Hub,2147313,434,623)
{
InCount=6
OutCount=1
link(onEvent1,2365950:doWrite,[(525,629)(525,482)])
}
Add(Button,13074427,375,760)
{
Left=1165
Top=550
Width=120
Height=30
Hint="Открыть порт"
Caption="тест полной емкости"
Data=Integer(123)
link(onClick,2147313:doEvent5,[(421,766)(421,657)])
}
Add(Memory,7573913,931,329)
{
}
Add(StrCat,8638450,875,329)
{
link(onStrCat,7573913:doValue,[])
link(Str1,7262214:Var1,[(881,317)(907,317)(907,376)])
}
Add(GetDataEx,7262214,931,371)
{
link(Data,7573913:Value,[])
}
Add(HubEx,15862282,1076,413)
{
Angle=3
link(onEvent,7573913:doClear,[(1080,381)(919,381)(919,342)])
}
Add(HubEx,16243796,1076,469)
{
Angle=3
link(onEvent,15862282:doWork3,[])
}
Add(HubEx,14432459,1076,525)
{
Angle=3
link(onEvent,16243796:doWork3,[])
}
Add(HubEx,14441520,1076,581)
{
Angle=3
link(onEvent,14432459:doWork3,[])
}
Add(HubEx,984718,1076,630)
{
Angle=3
link(onEvent,14441520:doWork3,[])
}
Add(HubEx,12437849,1076,686)
{
Angle=3
link(onEvent,984718:doWork3,[])
}
Add(HubEx,7639570,1076,742)
{
Angle=3
link(onEvent,12437849:doWork3,[])
}
Add(GetDataEx,16020354,952,382)
{
Angle=3
link(Data,7262214:Var2,[(937,387)])
}
Add(GetDataEx,8058839,952,425)
{
link(Data,16020354:Var2,[])
}
Add(GetDataEx,6663987,952,474)
{
link(Data,8058839:Var2,[])
}
Add(GetDataEx,7257219,952,527)
{
link(Data,6663987:Var2,[])
}
Add(GetDataEx,2189735,952,578)
{
link(Data,7257219:Var2,[])
}
Add(GetDataEx,13512767,952,638)
{
link(Data,2189735:Var2,[])
}
Add(GetDataEx,4233646,952,686)
{
link(Data,13512767:Var2,[])
}

Редактировалось 2 раз(а), последний 2024-07-09 08:22:28
карма: 0

0
Ответов: 39
Рейтинг: 0
#10: 2024-07-09 13:41:03 ЛС | профиль | цитата
tig-rrr писал(а):
andrewproffi, ПРИВЕТСТВУЕМ Вас )
Стилистика схемы очень похожа на RADIOSOFT

Аз есмь
изменить строки проблем нет, лишь бы программа их корректно приняла.
Спасибо всем, буду пробовать
карма: 0

0
Ответов: 494
Рейтинг: 163
#11: 2024-07-09 21:20:10 ЛС | профиль | цитата
andrewproffi, Эхо тест для проверки.
Эхо тест

Add(StyleXP,11046345,119,196)
{
}
Add(MainForm,14372191,119,133)
{
Left=200
Top=150
Width=930
Height=344
Color=-16777194
Font=[Arial,8,0,0,1]
Ctl3D=0
Caption="COM PORT эхо тест"
BorderStyle=1
Point(doBringToFront)
Point(onSetFocus)
Point(onDblClick)
link(onCreate,8070816:doEvent2,[(189,153)(189,97)])
}
Add(Button,1842072,231,203)
{
Left=15
Top=110
Width=120
Height=30
Hint="Закрыть порт"
Caption="Закрыть порт"
Data=Real(0)
link(onClick,2365950:doClose,[(291,209)(291,174)])
}
Add(Button,13336586,231,161)
{
Left=15
Top=75
Width=120
Height=30
Hint="Открыть порт"
Caption="Открыть порт"
Data=Real(0)
link(onClick,2365950:doOpen,[])
}
Add(ComboBox,8670476,364,77)
{
Left=15
Top=47
Width=120
Height=21
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|0:|0:|
AddType=1
Text="Выберите порт"
ReadOnly=0
}
Add(COMEX,2365950,371,161)
{
BaudRate=18
link(onSyncRead,16160086:doEvent1,[])
link(Port,8670476:String,[])
}
Add(Button,1574390,119,84)
{
Left=15
Top=5
Width=120
Height=35
Hint="Открыть порта"
Caption="Поиск порт"
Data=Real(0)
link(onClick,8070816:doEvent1,[])
}
Add(EnumCOM,2173630,245,91)
{
OutType=0
link(onEnumPorts,8670476:doAdd,[(307,97)(307,83)])
}
Add(Hub,8070816,210,84)
{
InCount=2
link(onEvent1,8670476:doClear,[])
link(onEvent2,2173630:doEnumPorts,[])
}
Add(Edit,16203784,231,252)
{
Left=155
Top=10
Width=750
Height=25
Text="$\r\n1234567890-1234567890-1234567890-1234567890-1234567890-1234567890-1234567890-1234567890-1234567890-1234567890\r\n;"
}
Add(Button,4807042,91,308)
{
Left=460
Top=45
Width=120
Caption="Отправить в порт"
link(onClick,89250:doEvent1,[])
}
Add(DoData,10120869,231,315)
{
link(onEventData,2365950:doWrite,[(342,321)(342,181)])
link(Data,16203784:Text,[])
}
Add(Memo,3392915,483,84)
{
Left=160
Top=80
Width=370
Height=105
ScrollBars=2
}
Add(Hub,16160086,427,175)
{
OutCount=4
link(onEvent1,3392915:doAdd,[(465,181)(465,90)])
link(onEvent2,7023906:doEvent1,[])
link(onEvent4,5377687:doEvent1,[(450,202)(450,405)])
}
Add(Edit,1011895,812,252)
{
Left=160
Top=200
Width=750
}
Add(StrMask,16386624,560,126)
{
CaseSensitive=0
Mask="$*"
link(onTrue,10867654:doClear,[(628,139)(628,202)])
AddHint(-1,40,25,13,Mask)
}
Add(Hub,7023906,504,182)
{
OutCount=3
link(onEvent1,16386624:doCompare,[(539,188)(539,132)])
link(onEvent2,10867654:doStrCat,[])
link(onEvent3,11819919:doCompare,[(539,202)(539,251)])
}
Add(StrMask,11819919,567,245)
{
CaseSensitive=0
Mask="*;"
link(onTrue,14241085:doData,[])
AddHint(-1,43,22,13,Mask)
}
Add(StrCat,10867654,665,189)
{
Point(doClear)
link(Str1,1760899:Var3,[(671,177)(643,177)])
}
Add(DoData,14241085,637,252)
{
link(onEventData,9551511:doEvent1,[])
link(Data,1760899:Var2,[])
}
Add(GetDataEx,1760899,637,224)
{
Angle=1
link(Data,10867654:Result,[(671,229)])
}
Add(Edit,15675481,854,315)
{
Left=160
Top=235
Width=750
}
Add(Hub,9551511,707,252)
{
link(onEvent1,1011895:doText,[])
link(onEvent2,10972279:doSearch,[(731,265)(731,321)])
}
Add(BlockFind,10972279,756,315)
{
IncludeBlock=1
StartBlock="$"
EndBlock=";"
link(onSearch,15675481:doText,[])
}
Add(Hub,89250,154,308)
{
link(onEvent1,9160591:doEvent1,[(189,314)(189,377)])
link(onEvent2,10120869:doData,[])
}
Add(LineBreak,4176414,427,91)
{
Caption="c"
link(Out,3392915:doClear,[])
Primary=[4496545,-126,280]
}
Add(DataAccumulator,9720182,574,406)
{
BufferSize=1024
Mode=1
Delimiter=";"
MaxLength=0
link(onData,4404576:doText,[])
link(Data,15624878:Value,[])
}
Add(Edit,4404576,756,406)
{
Left=160
Top=275
Width=750
}
Add(Memory,15624878,574,357)
{
}
Add(Hub,5377687,518,399)
{
link(onEvent1,15624878:doValue,[(553,405)(553,363)])
link(onEvent2,9720182:doStore,[])
}
Add(Hub,9160591,231,371)
{
OutCount=4
link(onEvent1,4496545:In,[])
link(onEvent2,5660177:In,[])
link(onEvent3,7995105:In,[])
link(onEvent4,14519343:In,[])
}
Add(LineBreak,8254559,763,259)
{
Caption="c"
link(Out,1011895:doText2,[])
Primary=[5660177,-504,119]
}
Add(LineBreak,15480704,805,322)
{
Caption="c"
link(Out,15675481:doText2,[])
Primary=[7995105,-504,63]
}
Add(LineBreak,14620279,707,413)
{
Caption="c"
link(Out,4404576:doText2,[])
Primary=[14519343,-448,-21]
}
Add(InfoTip,7404090,497,350)
{
Info=#28:DataAccumulator от Netspirit|
VAlign=2
Width=183
Height=123
Margin=10
}


Если не сложно можете выложить HEX для ардуинки с циклической отправкой данных вашего протокола (желательно с описанием чего должно быть). Проверим.

Редактировалось 1 раз(а), последний 2024-07-09 22:59:38
карма: 4

1
Голосовали:andrewproffi
Ответов: 39
Рейтинг: 0
#12: 2024-07-10 14:28:31 ЛС | профиль | цитата
tig-rrr писал(а):
Проверим.

Благодарю за предложение. Я суть понял, на этой неделе попробую и отпишусь.
карма: 0

0
Ответов: 39
Рейтинг: 0
#13: 2024-07-14 10:08:57 ЛС | профиль | цитата
Всем спасибо! Пример Тигра подошел, надеюсь что проблема приема данных с микроконтроллера теперь решена. Придут новые преобразователи USB-UART возможно напишу сюда результат проверки их работы. На фото 1 - приходящие данные с компонента ком порта, 2 - данные на выходе схемы приведенной на рисунке 3
> > >

Редактировалось 2 раз(а), последний 2024-07-14 10:10:36
карма: 0

0
Ответов: 39
Рейтинг: 0
#14: 2024-08-04 05:54:07 ЛС | профиль | цитата
По преобразователям в итоге не ясно.
Купил вроде как современные CP2102 - довольно сильно дробит строку, CH343 - отказался работать, только греется.
4 платы с CH340 и почему то на всех разные кварцы. Драйвер у всех один и тот же. Работают одинаково, дробят строку не сильно.
PL2303 - дробит строку слабо, хотя в моем сообщении выше скриншот именно с него (для этого теста использовал другую прошивку с отправкой длинной строки).
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#15: 2024-08-04 13:32:43 ЛС | профиль | цитата
Всем Привет!
Я в курсе того, что компонент ComEx дробит посылки данных. Почему, мне пока не очень ясно. Там надо полностью шерстить код и менять на другой.
Мой вам совет -- откажитесь от компонента ComEx, используйте обычный COM, запущенный в другом потоке, и там не нужны будут сторонние компоненты, тк буферизация делается из штатных, и синхронизация происходит по окончанию посылки.

Редактировалось 2 раз(а), последний 2024-08-04 13:39:41
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)