void sensor_cmd(char cmd, uint8_t *args) { //DEBUG args[0] -= '0'; args[1] -= '0'; args[2] -= '0'; //DEBUG switch (cmd) { case CMD_IDENTIFY: handleIdentify(); break; case CMD_GET_NO_SENSORS: handleGetNoOfSensors(); break; case CMD_GET_SENSOR: handleGetSensor(args[0]); break; case CMD_GET_NO_MEAS: handleGetNoOfMeasurements(args[0]); break; case CMD_GET_SENSOR_MEAS: handleGetMeasurement(args[0], args[1]); break; case CMD_GET_SENSOR_VALUE: handleGetValue(args[0], args[1]); break; case CMD_SET_SENSOR_RANGE: handleSetSensorRange(args[0], args[1], args[2]); break; case CMD_SET_SENSOR_OFF: handleSetSensorOff(args[0]); break; case CMD_SET_SENSOR_ON: handleSetSensorOn(args[0]); break; // ---------------------------------------------------------------------------- default: case CMD_NO_CMD: handleUnknownCommand(cmd); break; } serial_putc(10); }
void PMaildServerBase::parseInCommand(const QByteArray &cmd) { // default parseInCommand() handler: split by spaces and lookup local cmd table QList<QByteArray> list = cmd.split(' '); // search list for empty elements and drop these for(auto i = list.begin(); i != list.end(); i++) { if ((*i).isEmpty()) list.erase(i); } QByteArray method = "server_cmd_" + list.at(0).toLower(); // remove first entry list.erase(list.begin()); if (!QMetaObject::invokeMethod(this, method.data(), Qt::DirectConnection, Q_ARG(QList<QByteArray>, list))) { handleUnknownCommand(); } }