|
26.08.2009, 00:47
|
#1
|
Знающий
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений (для 331 пользователей)
|
Разработка Terminal-клиента для управления RS232 устройствами
Есть идея написать Terminal-client для управления разными устройствами (модемы, свичи, видео-камеры, счетчики электроэнергии и тд), имеющими разьем RS232 (COM-port) с помощью всего-лишь мобильного телефона и COM-шнурка.
По-моему было бы удобно, например, не лезть на чердак с ноутом, чтобы прописать в свиче ему новый IP или поменять пару настроек, а приконнектиться к нему прямо телефона )
Плюс, возможно, с некоторой переделкой шнура можно будет подцепляться ко всяким TTL-инженерным выходам в устройствах, например в роутерах (как Asus WL-500Gp и подобные), ADSL-модемах (например в ZTE такой точно есть), жестких дисков и прочее. Нужно в первую очередь для восстановления данных устройств - можно посмотреть, что он в терминалку пишет, дать какую-либо команду и прочее.
Сейчас занимаюсь написанием текстового редактора. Так, как делаю все в графическом режиме, придется придумывать свою функцию ввода текста... Возможно будет нечто, наподобии T9, только для основных терминальных команд. Потом возможно будет сохранение логинов и паролей, чтобы каждый раз их не набирать...
Но пока лишь самое начало. И в принципе, самый главный этап - текстовый редактор.
|
(Offline)
|
|
26.08.2009, 01:27
|
#2
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Наполеоновские планы. Управление теликом по ИК не сделали - а тут...
Но - удачи.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
26.08.2009, 17:07
|
#3
|
Знающий
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений (для 331 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Провозился сегодня весь день только лишь чтобы создать библиотеку, которая определяет на разных моделях телефонов коды софт-клавиш. http://forum.boolean.name/showthread...368#post116368
Нужны добровольцы-тестеры, чтобы потестить ее на реальных аппаратах.
Ну и пока набросал предварительный интерфейс. Вот думаю, может свой фиксированный шрифт использовать?
Последний раз редактировалось Tronix, 26.08.2009 в 22:33.
|
(Offline)
|
|
26.08.2009, 22:15
|
#4
|
Знающий
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений (для 331 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Мучаюсь над интерфейсом. Сделал скроллинг текста, мигающий курсорчик ;-) , сейчас пишу обработку клавиш, как в обычном телефоне - например нажали цифру 1, а он открывает менюшку с набором 'abc1' и тд.
Но что примерно получаеться можно посмотреть уже сейчас - пока любая цифровая кнопка = ввод буквы "a". Левая софткей - как выглядит менюха выбора и после этого * - выход.
Последний раз редактировалось Tronix, 27.08.2009 в 14:54.
|
(Offline)
|
|
26.08.2009, 22:56
|
#5
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
в таком деле инетрфейс, прокрутка текста и шрифт самое главное ! так держать !
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо NitE за это полезное сообщение:
|
|
27.08.2009, 00:11
|
#6
|
Знающий
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений (для 331 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Спасибо за поддержку.
Первая проблемма - не могу подсчитать количество нажатий одной и той-же клавиши.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.08.2009, 09:50
|
#7
|
Знающий
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений (для 123 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Скорее всего, если это будет работать, то только на старых моделях определенных тел.
Напр. в мотороле шнур имеет usb выход, а паять переходник или экспериментировать с готовым, usb->com (продается где-то за ~350p.) нет времени. А еще для переходника нужен источник питания 5V.
__
Терминал можно сделать и в форме, главное следить за размером поля вывода чтоб тел. не вис, как моторолы.
__
p.s.: а вообще идея хорошая, успешного завершения проекта.
|
(Offline)
|
|
27.08.2009, 11:00
|
#8
|
Знающий
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений (для 331 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Сообщение от abcdef
Скорее всего, если это будет работать, то только на старых моделях определенных тел.
Напр. в мотороле шнур имеет usb выход, а паять переходник или экспериментировать с готовым, usb->com (продается где-то за ~350p.) нет времени. А еще для переходника нужен источник питания 5V.
|
Да, я понимаю, что работать будет далеко не везде. Я мало вообще работал с телефонами, кроме сименсов (у меня они всегда были). Поэтому скорее всего конечная целевая аудитория - сименсоводы x65 - x75 серий.
Терминал можно сделать и в форме, главное следить за размером поля вывода чтоб тел. не вис, как моторолы.
|
Перед началом задумки посмотрел всякие мидлеты - текстовые редакторы, но не один из них не понравился. Да и в графическом режиме на экране по больше информации уместиться. Хотя конечно есть совмещенные, текст рисуют в графике, а ввод с помощью формы... Ну не знаю. Если с проклятыми клавишами не разбирусь, то может быть так и придеться делать, хотя не хочеться.
_
p.s.: а вообще идея хорошая, успешного завершения проекта.
|
Спасибо, буду стараться.
UPD: Фухх. Кажется разобрался с клавишами \w/. Не зря говорят утро вечера мудренее )) Продолжаю разработку своей функции ввода текста.
Последний раз редактировалось Tronix, 27.08.2009 в 11:36.
|
(Offline)
|
|
27.08.2009, 15:11
|
#9
|
Знающий
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений (для 331 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Уффф. Написал свою функцию ввода текста, на подобии той, что используется в текстовых формах. Можно набирать и стирать текст. Просьба кому не лень потестировать - что-нибуть понабирать/постирать. Может быть я каких-то глюков просто не замечаю?
Да и еще, я вот думаю - а на всех ли телефонах одинаковая раскладка? Тоесть вот у меня допустим когда нажимаешь клавишу "1" появляеться выбор: ' 1' (пробел или единица), цифру "2" - 'abc2' и так далее. А может быть такое, что в каких-то телефонах клавиша "1" означает 'abc1' ? Сейчас раскладка у меня хранится в мидлете - это файл keyb.txt, можно без проблемм добавить другие раскладки, скажем для моторол, сони эриксонов и так далее.. Только вот было бы не плохо, если бы вы мне их подсказали.
Сейчас начну заниматься менюхами и доводкой интерфейса.
|
(Offline)
|
|
27.08.2009, 16:56
|
#10
|
Разработчик
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений (для 638 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Раскладка не везде одинаковая.
Вообще, сделал бы ты сначала собственно управление RS232 устройствами, а потом уже интерфейс, свистелки и т.д.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.08.2009, 17:13
|
#11
|
Знающий
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений (для 331 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Сообщение от Romanzes
Раскладка не везде одинаковая.
Вообще, сделал бы ты сначала собственно управление RS232 устройствами, а потом уже интерфейс, свистелки и т.д.
|
Я пробовал использовать библиотеку Lib_comm - она прекрасно работает. Проверял с HyperTerminal + я более-менее разобрался как писать собственные библиотеки, так что если что - добавление новых функций - не проблемма. Ну а в случае затруднительных ситуаций надеюсь на помощь здешних гуру )
Проблемма в другом - у меня нет под рукой ни одного RS232 девайса, кроме как компа. Соответственно для тестирования нужна какая-то программа на компе, которая будет посылать в ком порт какие-то данные. Желательно текстовые данные. В идеале - почти эмулятор настройки каково-нибуть железного девайса... Не знаете таких программ? Наверное придется писать что-то самому на скорую руку на фри паскале..
|
(Offline)
|
|
27.08.2009, 19:04
|
#12
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
ну дык HyperTerminal, можно также использовать тот же p-330w или другое устройство с rs232
|
(Offline)
|
|
27.08.2009, 20:25
|
#13
|
Знающий
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений (для 123 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
как вариант для экспериментов, можно подключить другой сотовый с rs232
|
(Offline)
|
|
27.08.2009, 23:41
|
#14
|
Знающий
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений (для 331 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Мда, поторопился я. Не получается у меня коннект сделать.
Процедуру чтения из порта сделал в виде отдельного треда. В ней rcbuf := rcbuf + Chr(comm_read); Далее по ходу программы посылаю в порт строку, она нормально уходит на компьютер. далее печатаю на компе hello, оно должно в треде накопиться в строке rcbuf, а в rcbuf получаеться по-чему то только первый символ 'h'... Может быть конечно косяк в либе lib_thread.... Не знаю, весь день сегодня бился, но увы. Завтра помучаю еще немного, но...
Видимо не удачная идея с проектом была. (
|
(Offline)
|
|
01.09.2009, 11:24
|
#15
|
Знающий
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений (для 331 пользователей)
|
Ответ: Разработка Terminal-клиента для управления RS232 устройствами
Не могу разобраться в чем проблемма. Все нормально отсылает в комп, но при приеме упорно накапливает в строке-буффере только первый символ. Код:
program NewProject; uses comm, thread; var i, id: integer; t: string; procedure threadaction; // Тред. Собираем все что пришло с порта в строку t begin t := t + chr(comm_read); end; procedure WaitKey; // Ждем нажатия на звездочку begin while GetKeyClicked <> KE_STAR do begin Delay(100); end; end; begin drawText(GetProperty('microedition.commports'),0,0); // Выводим доступные порты repaint; drawText(comm_open('comm:COM0;baudrate=115200'),0,10); //Открываем COM0 drawText('Opened.',0,20); repaint; WaitKey; drawText(comm_write_string('Test Line 123456789'),0,70); //Посылаем в комп тестовую строку drawText('Send string OK.',0,30); repaint; WaitKey; init; // Запускаем тред с comm_read start; repeat // Постоянно выводим что у нас образовалось в строке-буффере setcolor(0,0,0); fillrect(0,0,100,20); setcolor(0,255,0); DrawText(t, 0,0); repaint; until getkeyclicked = KE_STAR; // выходим по звездочке stop; // все закрываем. comm_close; drawText('Closed.',0,50); WaitKey; end.
Причем если отключить использование треда и заменить цикл repeat-until на что-то вроде
while t<>'0' do begin i:= comm_read; drawText(integertostring(i),id,40); repaint; id:= id+10; end;
То все работает. Но comm_read ждет пока что-либо не получит из порта, тоесть если ничего не приходит - получаеться пауза в цикле (программе). А в терминалке мне этого не надо совершенно. Где косяк?
Хелп плиз! Проект из-за этого застопорился ((
P.S. Есть конечно мысли сделать как-нибуть свою псевдо-мультитредность нахимичив чего-нибуть с таймером, но пока мысль эта до конца не оформилась (
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:52.
|