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 WebosSurfaceManagerRemoteClient::onIncomingData() { int ret; WebosMessageHeader hdr; OffscreenNativeWindowBuffer *buffer; unsigned int windowId = 0; memset(&hdr, 0, sizeof(WebosMessageHeader)); ret = read(m_socketFd, &hdr, sizeof(WebosMessageHeader)); if (ret <= 0) { g_message("%s: Client closed connection; removing ...", __PRETTY_FUNCTION__); m_parent->onClientDisconnected(this); return; } switch (hdr.command) { case WEBOS_MESSAGE_TYPE_IDENTIFY: ret = read(m_socketFd, &windowId, sizeof(unsigned int)); if (ret <= 0) { g_warning("%s: Failed to read window identifier", __PRETTY_FUNCTION__); m_parent->onClientDisconnected(this); return; } m_winId = windowId; handleIdentify(windowId); break; case WEBOS_MESSAGE_TYPE_POST_BUFFER: buffer = new OffscreenNativeWindowBuffer(); buffer->incStrong(0); ret = buffer->readFromFd(m_socketFd); if (ret < 0) { g_warning("%s: Failed to read buffer", __PRETTY_FUNCTION__); m_parent->onClientDisconnected(this); return; } handleIncomingBuffer(buffer); break; default: g_warning("%s: unhandled message type %i", __PRETTY_FUNCTION__, hdr.command); break; } }