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

}