Вверх ↑
Этот топик читают: Гость
Ответов: 48
Рейтинг: 2
#1: 2010-09-27 12:51:51 ЛС | профиль | цитата
Добрый всем день!
Хочу поделиться примером программы отправки АТ комнад через комп порт или юсб-ком. Я в основном занимаюсь разработкой устройств на ПИКах и использованием для передачи данных при помощи GSM и для отладки использую компорт. В ХиАсме мне понравилась простота создания приложений. Сначала полазив по форумам попробывал использовать компонент ComAsync, но он както не коректно работал. Для того, чтобы отправить данные при помощи этого компонента мне приходилось заново закрывать и открывать порт при этом иногда выскакивала ошибка "runtime error". Использовав стандартную компоненту компорта программа работала стабильно на любой винде 32 или 64 бит, через стандартный или виртуальный компорт. code_20792.txt


карма: 1

1
файлы: 1code_20792.txt [6.9KB] [157]
Голосовали:Tad
Ответов: 16884
Рейтинг: 1239
#2: 2010-09-27 22:22:49 ЛС | профиль | цитата
oleg_k, потребовалась такая программка - решил использовать твою.
Правда немного перекроил - не люблю пересекающихся линий
sendat_com.sha
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1sendat_com.sha [6.3KB] [227]
Голосовали:oleg_k
Ответов: 48
Рейтинг: 2
#3: 2010-09-28 08:19:29 ЛС | профиль | цитата
Tad, я тоже не люблю пересекающихся линий, но скажем это одна из моих первых программок которую я составил на ХиАсме, а исскуство программирования приходит с опытом. Тем более я еще не очень хорошо знаю, как работают некоторые компоненты. А так мне понравилось, как ты переделал схемку, только вместо надписей почемуто вопросики. Ну да ладно написи поправим.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#4: 2010-09-28 08:54:32 ЛС | профиль | цитата
oleg_k писал(а):
только вместо надписей почемуто вопросики
Приколы у тебя. Только-что проверил - у меня нормальный русский язык. На всякий случай. вот то же в архиве sendat_com.rar


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1sendat_com.rar [2.3KB] [66]
Ответов: 48
Рейтинг: 2
#5: 2010-09-28 09:30:45 ЛС | профиль | цитата
Спасибо Tad, я уже поправил. А вообще хочу доработать эту програмку до конца. Когдато такую програмку делал на Билдере, теперь ради интереса и проверки возможностей ХиАсма хочу переделать на ХиАсме. В ней заложены возможности тестирования мобильных телефонов при помощи АТ команд. Также возможно читать и редактировать записную книжку телефона, отсылать СМС и читать их, звонить и передавать данные и факс по GSM каналу. Есть набор универсальных АТ команд которые работают на практически всех моделях, также специализированные под NOKIA, Siemens, модуль WaveCom, а сейчас пытаюсь разобраться в АТ командах Самсунга, потому что на эту модель практически нет описания.
------------ Дoбавленo в 09.30:
На всякий случай посмотрел архив - там все нормально.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#6: 2010-09-28 09:38:38 ЛС | профиль | цитата
Успехов !
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Главный модератор
Ответов: 2999
Рейтинг: 396
#7: 2010-09-28 09:44:25 ЛС | профиль | цитата
Tad писал(а):
Правда немного перекроил

with layout


Add(MainForm,68149,322,56)
{
Left=21
Top=105
Width=341
Height=275
Font=[Arial,8,0,0,1]
Caption="АТ Терминал"
Position=1
Point(onClose)
link(onCreate,12226412:doWork1,[(388,76)(388,90)])
link(onClose,4901:doClose,[(376,83)(376,167)])
}
Add(FormatStr,12648551,140,161)
{
Mask="%1"
link(onFString,96560:doEvent2,[])
link(Str1,93647:Text,[])
}
Add(Menu,15822,35,49)
{
Menu=#4:Файл|1:(|20:Отправить АТ команду|1:-|5:Выход|1:)|9:Настройки|1:(|4:Порт|1:)|6:Помощь|1:(|10:АТ команды|1:)|
Point(onSelectNum)
link(onSelectNum,1824143:doEvent,[])
}
Add(Button,68561,84,161)
{
Left=10
Top=185
Width=80
Font=[Arial,8,0,0,1]
Layout="main"
Caption="Отправить"
link(onClick,12648551:doString,[])
}
Add(Edit,93647,140,112)
{
Left=105
Top=185
Width=215
Layout="main"
WidthScale=100
Text="atz0"
}
Add(Hub,96560,203,154)
{
InCount=2
OutCount=3
link(onEvent1,4901:doOpen,[])
link(onEvent2,4901:doWrite,[(244,167)(244,181)])
link(onEvent3,6032311:doEvent1,[(231,174)(231,286)])
}
Add(DoData,63129,322,238)
{
Data=String(8)
link(onEventData,12414700:doWork2,[])
link(Data,4106459:Value,[])
}
Add(DoData,10850025,322,287)
{
Data=Integer(255)
link(onEventData,12414700:doWork3,[(375,293)])
}
Add(COM,4901,399,154)
{
BaudRate=0
link(onWrite,4106459:doValue,[(498,160)(498,230)(310,230)(310,195)])
link(onRead,8085367:doAdd,[])
link(Port,12226412:Var1,[])
link(BaudRate,12226412:Var2,[])
}
Add(Sleep,5688535,280,287)
{
Delay=100000
link(onSleep,10850025:doData,[])
}
Add(RichEdit,8085367,455,161)
{
Left=5
Top=10
Width=315
Height=160
Layout="grid"
WidthScale=100
HeightScale=100
ScrollBars=2
InsertCRLF=1
}
Add(Hub,6032311,245,280)
{
link(onEvent1,63129:doData,[(272,286)(272,244)])
link(onEvent2,5688535:doSleepMks,[])
}
Add(HubEx,12414700,371,238)
{
Angle=3
link(onEvent,4901:doRead,[(375,188)])
}
Add(Memory,4106459,322,189)
{
}
Add(StatusBar,7090654,455,84)
{
Panels=#10:Port: =100|13:Bitrate: =100|
}
Add(ChildForm,12226412,399,84)
{
link(onEvent1,7090654:doText,[])
}
BEGIN_SDK
Add(EditMulti,15810648,63,14)
{
EventCount=1
WorkCount=2
VarCount=2
Width=426
Height=277
VOffset=10
link(doWork1,6955960:doEvent1,[(220,30)(220,76)])
link(doWork2,13267341:doShowModal,[(75,37)(75,69)])
link(Var1,8132841:Value,[(69,196)(237,196)])
link(Var2,8288448:Var1,[(76,229)])
}
Add(MainForm,13267341,182,35)
{
Left=35
Top=105
Width=342
Height=178
Visible=1
Position=1
Point(doShowModal)
}
Add(Registry,1881658,266,84)
{
HKey=2
Key="HARDWAREDEVICEMAPSERIALCOMM"
Point(doEnumValues)
Point(onEnumValue)
link(onRead,6110522:doAdd,[(308,90)(308,69)])
link(Value,16596183:Value,[])
link(onEnumValue,10850935:doEvent1,[])
}
Add(ComboBox,6110522,364,63)
{
Left=25
Top=49
Width=125
Height=21
DataType=1
ReadOnly=0
Point(doSelect)
Point(EditText)
}
Add(Delete,9460134,182,147)
{
Count=3
link(onDelete,8132841:doValue,[])
link(Str,8561531:Var1,[(188,131)])
}
Add(Hub,10850935,315,91)
{
link(onEvent1,16596183:doValue,[(339,97)(339,20)(267,20)(267,34)])
link(onEvent2,1881658:doRead,[(339,104)(339,122)(250,122)(250,90)])
}
Add(Memory,16596183,280,28)
{
}
Add(Memory,8132841,231,147)
{
link(onData,10759629:doEvent1,[])
}
Add(ComboBox,282208,273,161)
{
Left=165
Top=50
Width=130
Height=21
Strings=#4:9600|5:14400|5:19200|6:115200|
ReadOnly=0
Point(doSelect)
Point(Index)
Point(EditText)
}
Add(Label,25757,269,238)
{
Left=170
Top=29
Width=84
Height=17
Caption="Скорость порта"
}
Add(Label,3743,414,59)
{
Left=25
Top=29
Width=89
Height=17
Caption="Свободный Порт"
}
Add(Button,6646612,182,77)
{
Left=25
Top=90
Caption="Рескан"
Point(onKeyUp)
Point(onMouseUp)
link(onClick,6955960:doEvent2,[])
}
Add(Button,10742335,84,140)
{
Left=170
Top=90
Caption="Ok"
link(onClick,13344311:doEvent1,[])
}
Add(Hub,6955960,231,70)
{
InCount=2
link(onEvent1,6110522:doClear,[])
link(onEvent2,1881658:doEnumValues,[(258,83)(258,104)])
}
Add(MT_Add,14065630,420,245)
{
Data=Integer(0)
link(onAdd,6151379:doWork3,[(475,251)])
}
Add(MT_Add,5706108,420,147)
{
Data=Integer(1)
link(onAdd,6151379:doWork2,[])
}
Add(StrCat,10849745,371,245)
{
Str1="Bitrate: "
link(onStrCat,14065630:doAdd,[])
link(Str2,8288448:Var3,[(384,229)])
}
Add(StrCat,8575142,371,147)
{
Str1="Port: "
link(onStrCat,5706108:doAdd,[])
link(Str2,8561531:Var2,[])
}
Add(Hub,10759629,315,147)
{
InCount=2
link(onEvent1,8575142:doStrCat,[])
link(onEvent2,10849745:doStrCat,[(338,160)(338,251)])
}
Add(GetDataEx,8288448,294,224)
{
link(Data,282208:EditText,[])
}
Add(HubEx,6151379,471,147)
{
Angle=3
link(onEvent,15810648:onEvent1,[(475,30)])
}
Add(GetDataEx,8561531,378,126)
{
link(Data,6110522:EditText,[])
}
Add(Hub,13344311,133,140)
{
link(onEvent1,13267341:doClose,[(167,146)(167,62)])
link(onEvent2,9460134:doDelete,[])
}
END_SDK
Add(ChildForm,14195151,140,63)
{
link(onEvent1,96560:doEvent1,[(188,69)(188,160)])
}
BEGIN_SDK
Add(EditMulti,9499377,21,21)
{
EventCount=1
WorkCount=1
Width=216
Height=137
link(doWork1,7900643:doShowModal,[(38,27)(38,139)])
}
Add(MainForm,7900643,182,105)
{
Left=35
Top=105
Width=263
Height=111
Visible=1
Caption="АТ команды"
Position=1
Point(doShowModal)
}
Add(ComboBox,4833137,91,35)
{
Left=100
Top=20
Width=130
Height=21
Strings=#7:at+cimi|7:at+cgmi|6:at+csq|
ReadOnly=0
}
Add(Button,1973678,49,91)
{
Left=15
Top=20
Width=75
Caption="Отправить"
link(onClick,9400134:doString,[])
}
Add(FormatStr,9400134,98,91)
{
Mask="%1
"
link(onFString,8059695:doEvent1,[])
link(Str1,4833137:String,[])
}
Add(Hub,8059695,140,91)
{
link(onEvent1,9499377:onEvent1,[(167,97)(167,27)])
link(onEvent2,7900643:doClose,[(168,104)(168,132)])
}
END_SDK
Add(IndexToChanel,1824143,84,56)
{
Count=8
link(onEvent2,14195151:doWork1,[])
link(onEvent4,68149:doClose,[])
link(onEvent6,12226412:doWork2,[])
}
Add(HBoxLayout,8493884,84,217)
{
Name="main"
Space=5
Layout="mainh"
AddMode=0
}
Add(VBoxLayout,727780,133,217)
{
Name="mainh"
Space=5
}
Add(GridLayout,1300770,182,217)
{
Name="grid"
WidthScale=100
HeightScale=100
Layout="mainh"
Rows=1
Cols=2
AddMode=1
}
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 48
Рейтинг: 2
#8: 2010-09-28 10:21:31 ЛС | профиль | цитата
Nic, спасибо. Немного разобрался с слоями.
карма: 1

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