Example #1
0
  /** allg. cmd's, nicht so zeitkritisch */
  static boolean handleRest(int val) {

    int data;

    if (val == BBSys.CMD_SET_STATE) {
      if (state != BBSys.MS_UP && state != BBSys.MS_DOWN) { // nicht in UP/DOWN moeglich!!!
        data = Msg.readData(); // Vorsicht: Nur rdy, dbg und service sinnvoll
        if (data == BBSys.MS_RDY || data == BBSys.MS_DBG || data == BBSys.MS_SERVICE) {
          state = data;
          Msg.write(0);
        } else {
          Msg.err(2);
        }
        return true;
      } else {
        Msg.err(1);
        return true;
      }
    }
    if (val == BBSys.CMD_SETCNT) {
      Triac.setCnt(Msg.readData());
      Msg.write(0);
      return true;
    }
    if (val == BBSys.CMD_TIME) {
      Msg.write(maxTime >>> 8); // div. by 256 => 34.7 us per tick
      return true;
    }
    if (val == BBSys.CMD_RESTIM) {
      maxTime = 0;
      Msg.write(0);
      return true;
    }
    if (val == BBSys.CMD_VERSION) {
      Msg.write((VER_MAJ << 6) + VER_MIN);
      return true;
    }
    if (val == BBSys.CMD_SERVICECNT) {
      Msg.write(Triac.serviceCnt);
      return true;
    }
    if (val == BBSys.CMD_SET_DOWNCNT) {
      Triac.setDownCnt(Msg.readData());
      Msg.write(0);
      return true;
    }
    if (val == BBSys.CMD_SET_UPCNT) {
      Triac.setUpCnt(Msg.readData());
      Msg.write(0);
      return true;
    }
    if (val == BBSys.CMD_SET_MAXCNT) {
      Triac.setMaxCnt(Msg.readData());
      Msg.write(0);
      return true;
    }
    if (val == BBSys.CMD_ERRNR) {
      Msg.write(lastErr);
      lastErr = 0;
      state = BBSys.MS_RDY;
      return true;
    }
    if (val == BBSys.CMD_TEMP) {
      doTemp();
      return true;
    }
    if (val == BBSys.CMD_DBG_DATA) {
      xxxDbgData();
      return true;
    }
    if (state == BBSys.MS_DBG) {
      return handleDbg(val);
    }
    return false;
  }