Example #1
0
 /**
  * Реализация интерфейса Runnable. Необходима для бесконечного цикла опроса ModbusChannel в
  * отдельном потоке.
  */
 @Override
 public void run() {
   interviewRun = true;
   if (channels.size() > 0) {
     try {
       openPort();
       while (interviewRun) {
         for (Channel channel : channels.values()) {
           try {
             channel.request();
             Thread.sleep(timePause);
           } catch (InterruptedException
               | ModbusIllegalRegTypeException
               | ModbusNoResponseException ex) {
             ex.printStackTrace();
             logger.error("\"" + channel + "\" " + ex.getMessage());
           } catch (ModbusRequestException ex) {
             channel.setNoResponse();
             logger.error("\"" + channel + "\" " + ex.getMessage());
           } catch (Exception ex) {
             ex.printStackTrace();
             logger.error("\"" + channel + "\" " + ex.getMessage());
           }
         }
       }
     } catch (OpenComPortException e) {
       e.printStackTrace();
       logger.error("\"" + this.name + "\" Невозможно установить соединение с COM-портом");
     } finally {
       closePort();
     }
   }
 }