char processUltrasonicCommand(char commandCode, void* commandData, Response* responseData) { switch(commandCode) { case GET_ALL_SENSORS: getAllSensors((int*) responseData->payload); break; case GET_CERTAIN_SENSORS: getCertainSensor(((char*)commandData)[0], (int*) responseData->payload); break; case GET_SENSOR_GROUP: getSensorGroup(((char*)commandData)[0], (int*) responseData->payload); break; } //return success for now... return 1; }
/* * Gets data from the Ultrasonic sensors. * * char commandCode: The specific command to call. * void* commandData: Data from the master to pass to the device. * Response* responseData: The response from the device. */ char processUltrasonicCommand(char commandCode, void* commandData, Response* responseData) { switch(commandCode) { case GET_ALL_SENSORS: responseData->size = 12; getAllSensors((unsigned char*) responseData->payload); break; case GET_CERTAIN_SENSORS: responseData->size = 2; getCertainSensor(((unsigned char*)commandData)[0], (unsigned char*) responseData->payload); break; case GET_SENSOR_GROUP: responseData->size = 4; getSensorGroup(((unsigned char*)commandData)[0], (unsigned char*) responseData->payload); break; } return 1; }
void getAverageTemperatureCelsius( std::function<void (double)> callback) const { double sum = 0; std::size_t count = 0; LambdaRmi::SensorSeq sensorSeq = getAllSensors()->list(); for (LambdaRmi::SensorSeq::iterator i = sensorSeq.begin(); i != sensorSeq.end(); ++i) { std::cout << (*i)->getReading() << '\n'; sum += (*i)->getReading()->temperatureCelcius; ++count; } if (count != 0) { callback(sum / count); } else { callback(0); } }
void GUIServer::run() { if (receiveCommand()) { m_UdpServer.beginPacket(m_UdpServer.remoteIP(), m_UdpServer.remotePort()); m_UdpServer.write(m_Buffer[1]); m_UdpServer.write(m_Buffer[0]); Serial.print(F("Request ID: ")); Serial.println(m_Buffer[0]); Serial.print(F("Method ID: ")); Serial.println(m_Buffer[1]); Serial.print(F("value: ")); Serial.println(m_Buffer[2]); switch (m_Buffer[1]) { case GETVERSION: m_UdpServer.write((uint8_t) 0); m_UdpServer.write(1); break; case GETALLSENSORS: getAllSensors(); break; case GETSENSORDATA: getSensorData(m_Buffer[2]); break; case SETSENSORCONFIG: switch (m_Buffer[3]) { case 1: break; case 2: setSensorConfig(m_Buffer[2], m_Buffer[3], (char*) &m_Buffer[4]); break; case 3: setSensorConfig(m_Buffer[2], m_Buffer[3], (char*) &m_Buffer[4]); break; case 4: setSensorConfig(m_Buffer[2], m_Buffer[3], (uint8_t) m_Buffer[4]); break; case 5: setSensorConfig(m_Buffer[2], m_Buffer[3], (uint8_t) m_Buffer[4]); break; } break; case GETALLACTUATORS: getAllActuators(); break; case GETACTUATORDATA: getActuatorData(m_Buffer[2]); break; case SETACTUATORDATA: switch (m_Buffer[3]) { case 1: case 3: case 4: case 5: case 6: setActuatorData(m_Buffer[2], m_Buffer[3], (uint8_t) m_Buffer[4]); break; case 2: setActuatorData(m_Buffer[2], m_Buffer[3], (char*) m_Buffer[4]); } break; case SETACTUATORCONFIG: switch (m_Buffer[3]) { case 1: break; case 2: setActuatorConfig(m_Buffer[2], m_Buffer[3], (char*) &m_Buffer[4]); break; case 3: break; case 4: break; case 5: break; } break; case GETCLOCKTIMERS: getClockTimers(m_Buffer[2]); break; default: break; } m_UdpServer.endPacket(); } }