Esempio n. 1
0
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);
}
Esempio n. 2
0
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();
	}
}