示例#1
0
 @Override
 public Consumer createConsumer(final Processor processor) throws Exception {
   String dataType = JamodUriResolver.getDataTypeFromUri(modbusURI);
   ModbusPollingConsumer consumer;
   if ("discreteInputs".equalsIgnoreCase(dataType)) {
     consumer = new DiscreteInputsPollingConsumer(this, processor);
   } else if ("coils".equalsIgnoreCase(dataType)) {
     consumer = new DiscreteOutputsPollingConsumer(this, processor);
   } else if ("registers".equalsIgnoreCase(dataType)) {
     consumer = new RegistersPollingConsumer(this, processor);
   } else if ("register".equalsIgnoreCase(dataType)) {
     consumer = new RegisterPollingConsumer(this, processor);
   } else if ("inputRegisters".equalsIgnoreCase(dataType)) {
     consumer = new InputRegistersPollingConsumer(this, processor);
   } else if ("inputRegister".equalsIgnoreCase(dataType)) {
     consumer = new InputRegisterPollingConsumer(this, processor);
   } else {
     throw new IllegalArgumentException(
         MessageFormat.format("Unsupported data type: {0}", dataType));
   }
   consumer.setReferenceAddress(JamodUriResolver.getReferenceFromUri(modbusURI));
   int delay =
       component.getAndRemoveParameter(parameters, "delay", Integer.class, Integer.valueOf(500));
   consumer.setDelay(delay);
   int initialDelay =
       component.getAndRemoveParameter(
           parameters, "initialDelay", Integer.class, Integer.valueOf(500));
   consumer.setInitialDelay(initialDelay);
   int count =
       component.getAndRemoveParameter(parameters, "count", Integer.class, Integer.valueOf(1));
   consumer.setCount(count);
   boolean changesOnly =
       component.getAndRemoveParameter(parameters, "changesOnly", Boolean.class, Boolean.FALSE);
   consumer.setChangesOnly(changesOnly);
   int slaveId = component.getAndRemoveParameter(parameters, SLAVE_ID, Integer.class, 0);
   consumer.setSlaveId(slaveId);
   return consumer;
 }
示例#2
0
 /**
  * Returns {@code null}.
  *
  * @return {@code null}
  * @throws Exception never
  */
 public ModbusProducer createProducer() throws Exception {
   String dataType = JamodUriResolver.getDataTypeFromUri(modbusURI);
   ModbusProducer producer;
   if ("coils".equalsIgnoreCase(dataType)) {
     producer = new DiscreteOutputsProducer(this);
   } else if ("registers".equalsIgnoreCase(dataType)) {
     producer = new RegistersProducer(this);
   } else {
     throw new IllegalArgumentException(
         MessageFormat.format("Unsupported data type: {0}", dataType));
   }
   producer.setReferenceAddress(JamodUriResolver.getReferenceFromUri(modbusURI));
   int slaveId = component.getAndRemoveParameter(parameters, SLAVE_ID, Integer.class, 0);
   producer.setSlaveId(slaveId);
   return producer;
 }