Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Siemens TC65, Проблема с CommConnection 
:(
    Опции темы
urri73
  Дата 25.9.2009, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.5.2009
Где: г. Ульяновск

Репутация: нет
Всего: нет



Добрый день!
Пишу Мидлет, управлящий взаимодействием терминала Siemens TC65 с электросчётчиком CE301 через RS232. Настройки COM - порта терминала указал такие же, как у электросчётчика. При попытке посылки строки запроса в порт программа обрабатывает исключение:
Код

public void rwrs(){    
    try
    {
        String port;
        String ports = System.getProperty("microedition.commports");
        int comma = ports.indexOf(',');
        if (comma > 0) {
             // Берём первый из доступных портов.
             port = ports.substring(0, comma);
        } else {
             // Доступен один порт.
              port =ports;
        }
    writeLog("port: "+port, true);//writeLog пишет иформацию в текстовый файл
    CommConnection commConn =
    (CommConnection) Connector.open("comm:COM0;baudrate=300;bitsperchar=7;stopbits=1;parity=even;blocking=off;autocts=off;autorts=off", Connector.READ_WRITE,true);
    final InputStream iStream = commConn.openInputStream();
    final OutputStream oStream = commConn.openOutputStream();
    final String[] messageString = {"/?!\r\n","¦050\r\n"};//2 запроса для электросчётчика
    Thread tRead = new Thread() {
    public void run() {
              for(int i=0;i<2;i++){
                    try {
                        oStream.write(messageString[i].getBytes());//Отправляем запрос в электросчётчик
                        } catch (IOException e1) {writeLog("write:"+ e1.toString(), true);//пишем в файл причину вылета
                             // TODO Auto-generated catch block
                             e1.printStackTrace();
                        }
                    StringBuffer sb = new StringBuffer();
                    while(true) {
                          try {
                              int c = iStream.read();//Чтение символа из порта
                              if (c != '\r') {
                                     sb.append((char)c);
                              } else
                                     break;
                              } catch (IOException e) {writeLog("read:"+ e.toString(), true);//пишем в файл причину
                                   // TODO Auto-generated catch block
                                   e.printStackTrace();
                              }
                    }
                    try {
                        Thread.sleep ( 500 );
                        }
                    catch (InterruptedException e) { }
              }
    }
    };
    tRead.start();
    iStream.close();
    oStream.close();
    commConn.close();
    }
    catch (IOException ioe)
    {
    };
}

файл сообщений: 
Код

port: COM0
write:java.io.InterruptedIOException: Stream closed
read:java.io.InterruptedIOException: Stream closed

Подскажите пожалуйста, почему строка запроса не пишется в порт ?
Заранее спасибо !

PM MAIL WWW   Вверх
mopsa
Дата 26.9.2009, 09:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 11.1.2009
Где: Екатеринбург/Асбе ст

Репутация: 1
Всего: 1



Цитата(urri73 @  25.9.2009,  12:49 Найти цитируемый пост)
    tRead.start();
    iStream.close();
    oStream.close();
    commConn.close();


 запуская метод run() Вы тут же закрываете потоки ввода-вывода, а в методе run() пытаетесь в их писать-читать  
PM MAIL   Вверх
urri73
  Дата 29.9.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.5.2009
Где: г. Ульяновск

Репутация: нет
Всего: нет



Большое спасибо! (Я в яве недавно). Всё поправил, всё попёрло !
smilesmilesmile smile smile smile smile smile

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0684 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.