forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на MidletPascal (http://forum.boolean.name/forumdisplay.php?f=88)
-   -   Разработка Terminal-клиента для управления RS232 устройствами (http://forum.boolean.name/showthread.php?t=9002)

Tronix 26.08.2009 00:47

Разработка Terminal-клиента для управления RS232 устройствами
 
Есть идея написать Terminal-client для управления разными устройствами (модемы, свичи, видео-камеры, счетчики электроэнергии и тд), имеющими разьем RS232 (COM-port) с помощью всего-лишь мобильного телефона и COM-шнурка.
По-моему было бы удобно, например, не лезть на чердак с ноутом, чтобы прописать в свиче ему новый IP или поменять пару настроек, а приконнектиться к нему прямо телефона )

Плюс, возможно, с некоторой переделкой шнура можно будет подцепляться ко всяким TTL-инженерным выходам в устройствах, например в роутерах (как Asus WL-500Gp и подобные), ADSL-модемах (например в ZTE такой точно есть), жестких дисков и прочее. Нужно в первую очередь для восстановления данных устройств - можно посмотреть, что он в терминалку пишет, дать какую-либо команду и прочее.

Сейчас занимаюсь написанием текстового редактора. Так, как делаю все в графическом режиме, придется придумывать свою функцию ввода текста... Возможно будет нечто, наподобии T9, только для основных терминальных команд. Потом возможно будет сохранение логинов и паролей, чтобы каждый раз их не набирать...

Но пока лишь самое начало. И в принципе, самый главный этап - текстовый редактор.

impersonalis 26.08.2009 01:27

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Наполеоновские планы. Управление теликом по ИК не сделали - а тут...
Но - удачи.

Tronix 26.08.2009 17:07

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Вложений: 1
Провозился сегодня весь день только лишь чтобы создать библиотеку, которая определяет на разных моделях телефонов коды софт-клавиш. http://forum.boolean.name/showthread...368#post116368

Нужны добровольцы-тестеры, чтобы потестить ее на реальных аппаратах.

Ну и пока набросал предварительный интерфейс. Вот думаю, может свой фиксированный шрифт использовать?

Tronix 26.08.2009 22:15

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Мучаюсь над интерфейсом. Сделал скроллинг текста, мигающий курсорчик ;-) , сейчас пишу обработку клавиш, как в обычном телефоне - например нажали цифру 1, а он открывает менюшку с набором 'abc1' и тд.

Но что примерно получаеться можно посмотреть уже сейчас - пока любая цифровая кнопка = ввод буквы "a". Левая софткей - как выглядит менюха выбора и после этого * - выход.

NitE 26.08.2009 22:56

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
в таком деле инетрфейс, прокрутка текста и шрифт самое главное ! так держать !

Tronix 27.08.2009 00:11

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Спасибо за поддержку.

Первая проблемма - не могу подсчитать количество нажатий одной и той-же клавиши.

abcdef 27.08.2009 09:50

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Скорее всего, если это будет работать, то только на старых моделях определенных тел.
Напр. в мотороле шнур имеет usb выход, а паять переходник или экспериментировать с готовым, usb->com (продается где-то за ~350p.) нет времени. А еще для переходника нужен источник питания 5V.
__
Терминал можно сделать и в форме, главное следить за размером поля вывода чтоб тел. не вис, как моторолы.
__
p.s.: а вообще идея хорошая, успешного завершения проекта.

Tronix 27.08.2009 11:00

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Цитата:

Сообщение от abcdef (Сообщение 116461)
Скорее всего, если это будет работать, то только на старых моделях определенных тел.
Напр. в мотороле шнур имеет usb выход, а паять переходник или экспериментировать с готовым, usb->com (продается где-то за ~350p.) нет времени. А еще для переходника нужен источник питания 5V.

Да, я понимаю, что работать будет далеко не везде. Я мало вообще работал с телефонами, кроме сименсов (у меня они всегда были). Поэтому скорее всего конечная целевая аудитория - сименсоводы x65 - x75 серий.
Цитата:

Терминал можно сделать и в форме, главное следить за размером поля вывода чтоб тел. не вис, как моторолы.
Перед началом задумки посмотрел всякие мидлеты - текстовые редакторы, но не один из них не понравился. Да и в графическом режиме на экране по больше информации уместиться. Хотя конечно есть совмещенные, текст рисуют в графике, а ввод с помощью формы... Ну не знаю. Если с проклятыми клавишами не разбирусь, то может быть так и придеться делать, хотя не хочеться.

Цитата:

_
p.s.: а вообще идея хорошая, успешного завершения проекта.
Спасибо, буду стараться.

UPD: Фухх. Кажется разобрался с клавишами \w/. Не зря говорят утро вечера мудренее )) Продолжаю разработку своей функции ввода текста.

Tronix 27.08.2009 15:11

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Вложений: 1
Уффф. Написал свою функцию ввода текста, на подобии той, что используется в текстовых формах. Можно набирать и стирать текст. Просьба кому не лень потестировать - что-нибуть понабирать/постирать. Может быть я каких-то глюков просто не замечаю?

Да и еще, я вот думаю - а на всех ли телефонах одинаковая раскладка? Тоесть вот у меня допустим когда нажимаешь клавишу "1" появляеться выбор: ' 1' (пробел или единица), цифру "2" - 'abc2' и так далее. А может быть такое, что в каких-то телефонах клавиша "1" означает 'abc1' ? Сейчас раскладка у меня хранится в мидлете - это файл keyb.txt, можно без проблемм добавить другие раскладки, скажем для моторол, сони эриксонов и так далее.. Только вот было бы не плохо, если бы вы мне их подсказали.

Сейчас начну заниматься менюхами и доводкой интерфейса.

Romanzes 27.08.2009 16:56

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Раскладка не везде одинаковая.
Вообще, сделал бы ты сначала собственно управление RS232 устройствами, а потом уже интерфейс, свистелки и т.д.

Tronix 27.08.2009 17:13

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Цитата:

Сообщение от Romanzes (Сообщение 116497)
Раскладка не везде одинаковая.
Вообще, сделал бы ты сначала собственно управление RS232 устройствами, а потом уже интерфейс, свистелки и т.д.

Я пробовал использовать библиотеку Lib_comm - она прекрасно работает. Проверял с HyperTerminal + я более-менее разобрался как писать собственные библиотеки, так что если что - добавление новых функций - не проблемма. Ну а в случае затруднительных ситуаций надеюсь на помощь здешних гуру )

Проблемма в другом - у меня нет под рукой ни одного RS232 девайса, кроме как компа. Соответственно для тестирования нужна какая-то программа на компе, которая будет посылать в ком порт какие-то данные. Желательно текстовые данные. В идеале - почти эмулятор настройки каково-нибуть железного девайса... Не знаете таких программ? Наверное придется писать что-то самому на скорую руку на фри паскале..

dimanche13 27.08.2009 19:04

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
ну дык HyperTerminal, можно также использовать тот же p-330w или другое устройство с rs232

abcdef 27.08.2009 20:25

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
как вариант для экспериментов, можно подключить другой сотовый с rs232

Tronix 27.08.2009 23:41

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Мда, поторопился я. Не получается у меня коннект сделать.
Процедуру чтения из порта сделал в виде отдельного треда. В ней rcbuf := rcbuf + Chr(comm_read); Далее по ходу программы посылаю в порт строку, она нормально уходит на компьютер. далее печатаю на компе hello, оно должно в треде накопиться в строке rcbuf, а в rcbuf получаеться по-чему то только первый символ 'h'... Может быть конечно косяк в либе lib_thread.... Не знаю, весь день сегодня бился, но увы. Завтра помучаю еще немного, но...

Видимо не удачная идея с проектом была. (

Tronix 01.09.2009 11:24

Ответ: Разработка Terminal-клиента для управления RS232 устройствами
 
Не могу разобраться в чем проблемма. Все нормально отсылает в комп, но при приеме упорно накапливает в строке-буффере только первый символ. Код:
PHP код:

program NewProject;
uses commthread;
var
    
i,
  
idinteger;
  
tstring;

procedure threadaction;    // Тред. Собираем все что пришло с порта в строку t
begin
    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(t0,0);
    
repaint;
until getkeyclicked KE_STAR// выходим по звездочке
    
stop// все закрываем.
  
comm_close;
    
drawText('Closed.',0,50);
  
WaitKey;
end

Причем если отключить использование треда и заменить цикл repeat-until на что-то вроде
PHP код:

while t<>'0' do begin
      i
:= comm_read;
        
drawText(integertostring(i),id,40);
        
repaint;
        
id:= id+10;
    
end

То все работает. Но comm_read ждет пока что-либо не получит из порта, тоесть если ничего не приходит - получаеться пауза в цикле (программе). А в терминалке мне этого не надо совершенно. Где косяк?
Хелп плиз! Проект из-за этого застопорился ((

P.S. Есть конечно мысли сделать как-нибуть свою псевдо-мультитредность нахимичив чего-нибуть с таймером, но пока мысль эта до конца не оформилась (


Часовой пояс GMT +4, время: 16:18.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot