Вверх ↑
Ответов: 197
Рейтинг: 2
#1: 2024-11-17 22:25:20 ЛС | профиль | цитата
И снова здравствуйте, сварганил одну приблуду и хотелось бы ее сделать более человеколюбивой, и по классике жанра не знаю куда копать.


Add(MainForm,2953706,161,224)
{
Width=347
Height=149
Caption="RemPowerControl"
Point(onClose)
Point(doWidth)
Point(doHeight)
link(onCreate,13959214:doEvent1,[(240,244)(240,307)])
}
Add(Button,3086356,623,567)
{
Left=100
Top=85
Width=95
Visible=1
Caption="Power_on"
Data=String(Power_on)
Point(doVisible)
link(onClick,10925069:doEvent2,[(671,573)(671,538)])
}
Add(Button,12094308,616,448)
{
Left=230
Top=85
Width=95
Visible=1
Caption="Power_off"
Data=String(Power_off)
Point(doVisible)
link(onClick,14351558:doEvent1,[])
}
Add(COMEX,15461939,483,476)
{
Point(onDCD)
Point(onOpen)
Point(doDTR)
Point(doRTS)
Point(doRXClear)
Point(onError)
Point(onClose)
link(Port,3611942:Var,[])
link(onDCD,6630792:doEvent,[(604,503)(604,524)])
link(onOpen,14573883:doOn,[(537,510)(537,524)])
link(onError,13281352:doEvent1,[(523,517)(523,482)])
link(onClose,14573883:doOff,[(537,524)(537,517)])
}
Add(LED,1038873,791,483)
{
Left=200
Top=60
Blick=1
ColorOff=8421504
}
Add(IndexToChanel,6630792,623,518)
{
link(onEvent1,10925069:doEvent1,[(671,524)(671,531)])
link(onEvent2,14351558:doEvent2,[(667,531)(667,461)])
}
Add(Message,2898214,1141,476)
{
Message="Не возможно открыть Com port"
Caption="Com port"
Icon=4
}
Add(DoData,14995888,791,434)
{
Data=String(Power_off)
}
Add(DoData,16676006,763,553)
{
Data=String(Power_on)
}
Add(Hub,14351558,679,448)
{
InCount=2
OutCount=3
link(onEvent1,14995888:doData,[(700,454)(700,440)])
link(onEvent2,1038873:doOff,[(745,461)(745,496)])
link(onEvent3,7959721:doData,[(739,468)(739,692)])
}
Add(Hub,10925069,686,525)
{
InCount=2
OutCount=3
link(onEvent1,16676006:doData,[(718,531)(718,559)])
link(onEvent2,1038873:doOn,[(746,538)(746,503)])
link(onEvent3,16425085:doData,[(742,545)(742,650)])
}
Add(LED,14573883,560,504)
{
Left=200
Top=10
Blick=1
ColorOn=65280
ColorOff=8421504
}
Add(CheckBox,11345511,532,630)
{
Left=10
Top=85
Width=85
Caption="Manual Mode"
link(onCheck,6580948:doEvent1,[(580,636)(580,573)])
}
Add(Hub,6580948,588,567)
{
link(onEvent1,3086356:doVisible,[])
link(onEvent2,12094308:doVisible,[(614,580)(614,606)(837,606)(837,423)(577,423)(577,454)])
}
Add(Button,13973615,273,469)
{
Left=230
Top=5
Width=95
Height=25
Caption="Открыть порты"
link(onClick,6245660:doEvent2,[])
}
Add(EnumCOM,4795209,322,301)
{
link(onEnumPorts,15879246:doEvent1,[])
}
Add(Hub,6245660,329,462)
{
InCount=2
OutCount=5
link(onEvent1,8981816:doEvent1,[(357,468)(357,377)])
link(onEvent2,14055846:In,[])
link(onEvent3,15461939:doOpen,[])
link(onEvent4,14204440:In,[])
}
Add(Button,12548643,311,574)
{
Left=230
Top=35
Width=95
Height=25
Caption="Закрыть порты"
link(onClick,10338042:doEvent2,[(357,580)(357,559)])
}
Add(ComboBox,15281610,413,315)
{
Left=100
Top=10
Width=95
Height=21
Text="ComPortSens"
DropDownCount=15
Point(Index)
Point(doSelect)
}
Add(GetIndexData,3611942,483,420)
{
link(Data1,7708773:GetData,[])
}
Add(DoData,13113386,420,420)
{
link(onEventData,3611942:doIndex,[])
}
Add(Delete,7374699,420,371)
{
Count=3
link(onDelete,7708773:doData,[])
link(Str,15281610:String,[])
}
Add(EventFromData,7708773,483,371)
{
}
Add(Button,5619865,112,280)
{
Left=100
Top=60
Width=95
Caption="Обновить"
link(onClick,9961641:doEvent1,[])
}
Add(Hub,9961641,168,280)
{
OutCount=6
link(onEvent1,8153651:In,[])
link(onEvent3,4446351:In,[])
link(onEvent4,14485693:In,[])
link(onEvent5,13959214:doEvent2,[])
}
Add(Hub,13959214,287,301)
{
InCount=2
OutCount=1
link(onEvent1,4795209:doEnumPorts,[])
}
Add(Hub,10338042,371,546)
{
InCount=2
link(onEvent1,15461939:doClose,[(424,552)(424,489)])
link(onEvent2,5295513:In,[(399,559)(399,566)])
}
Add(LineBreak,4787817,308,546)
{
link(Out,10338042:doEvent1,[])
Primary=[8153651,-112,-266]
}
Add(COMEX,14266388,1008,616)
{
Point(onDCD)
Point(onOpen)
Point(doDTR)
Point(doRTS)
Point(doRXClear)
Point(onError)
Point(onClose)
link(Port,7117122:Var1,[])
link(onOpen,2564288:doOn,[(1072,650)(1072,660)])
link(onError,13281352:doEvent2,[(1066,657)(1066,489)])
link(onClose,2564288:doOff,[(1072,664)(1072,653)])
}
Add(StreamConvertor,2547758,896,651)
{
Mode=3
link(onResult,14266388:doWrite,[(968,657)(968,636)])
}
Add(Hub,13479268,854,651)
{
InCount=2
OutCount=1
link(onEvent1,2547758:doConvert,[])
}
Add(DoData,16425085,784,644)
{
Data=String(A00101A2)
link(onEventData,13479268:doEvent1,[(835,650)(835,657)])
}
Add(DoData,7959721,784,686)
{
Data=String(A00100A1)
link(onEventData,13479268:doEvent2,[(835,692)(835,664)])
}
Add(ComboBox,347233,1001,490)
{
Left=100
Top=35
Width=95
Height=21
Text="ComPort Relay"
Point(Text)
Point(Data)
Point(Index)
}
Add(LineBreak,1458761,889,609)
{
link(Out,14266388:doClose,[(925,615)(925,629)])
Primary=[5295513,-476,-49]
}
Add(LineBreak,10037001,889,588)
{
link(Out,14266388:doOpen,[(995,594)(995,622)])
Primary=[14204440,-525,-105]
}
Add(Hub,15879246,378,301)
{
link(onEvent1,347233:doAdd,[(969,307)(969,496)])
link(onEvent2,15281610:doAdd,[(399,314)(399,321)])
}
Add(LineBreak,234941,938,497)
{
link(Out,347233:doClear,[])
Primary=[14485693,-742,-196]
}
Add(MultiElement,7117122,1008,546)
{
link(Data1,347233:String,[])
}
BEGIN_SDK
Add(EditMulti,8722527,21,21)
{
WorkCount=1
DataCount=1
VarCount=1
Width=1133
Height=844
link(doWork1,6684048:doEvent1,[(115,27)(115,258)])
link(Var1,15841810:Var,[(27,595)(398,595)])
}
Add(GetIndexData,15841810,392,294)
{
link(Data1,1214412:GetData,[(398,275)(391,275)])
}
Add(DoData,11077331,322,294)
{
link(onEventData,15841810:doIndex,[])
}
Add(Delete,10817791,322,196)
{
Count=3
link(onDelete,1214412:doData,[])
link(Str,8722527:Data1,[(328,108)(27,108)])
}
Add(EventFromData,1214412,385,196)
{
}
Add(Hub,6684048,210,252)
{
link(onEvent1,10817791:doDelete,[(273,258)(273,202)])
link(onEvent2,11077331:doData,[(273,265)(273,300)])
}
END_SDK
Add(Hub,8981816,371,371)
{
OutCount=3
link(onEvent1,7374699:doDelete,[])
link(onEvent2,13113386:doData,[(399,384)(399,426)])
}
Add(LineBreak,6004050,959,546)
{
link(Out,7117122:doWork1,[])
Primary=[14055846,-602,-77]
}
Add(Hub,13281352,1092,476)
{
InCount=2
link(onEvent1,2898214:doMessage,[])
}
Add(LED,2564288,1083,640)
{
Left=200
Top=35
Blick=1
ColorOn=65280
ColorOff=8421504
}
Add(LineBreak,16596305,357,322)
{
link(Out,15281610:doClear,[])
Primary=[4446351,-161,-28]
}



Отсюда возникает вопрос как сделать в хиасме чтобы программа сама определяла нужное устройство и выбирала его в своем месте.
принцип работы программы примитивный сенсор ловит нужный сигнал и передает его на реле. только каждый раз при запуске ПО приходится выбирать COM порты а их как назло иногда2 десятка и они временами почему-то меняются.
Логически я примерно представляю что нужно опросить каждый ком порт на свойства и какие то уникальные характеристики и выбрать нужный. Но как, если это обычные USB-com переходники китайского производства.
карма: 0

0