/** Starts the component. Detects ADC and will report error if this fails */
 public void start() {
   port = CIMPortManager.getInstance().getConnection(ADC_CIM_ID);
   if (port != null) {
     super.start();
     AstericsErrorHandling.instance.reportInfo(this, "AnalogOutInstance started");
   } else {
     AstericsErrorHandling.instance.reportError(this, "Could not find DAC CIM");
   }
 }
  /**
   * Clips the input to the available range and transfers it to the CIM
   *
   * @param value the voltage value (0 to 240 representing 100mV steps)
   * @param index the index of the output to set the value on
   */
  public void processInput(int value, int index) {
    int val = value;
    if (val > 240) val = 240;
    else if (val < 0) val = 0;

    dacValues[index] = (byte) val;

    if (port != null) {
      CIMPortManager.getInstance()
          .sendPacket(
              port,
              dacValues,
              ADC_FEATURE_DAC_OUTPUT_VALUE,
              CIMProtocolPacket.COMMAND_REQUEST_WRITE_FEATURE,
              false);
    }
  }