int air_quality_get_all_values(AirQuality *air_quality, int32_t *ret_iaq_index, uint8_t *ret_iaq_index_accuracy, int32_t *ret_temperature, int32_t *ret_humidity, int32_t *ret_air_pressure) { DevicePrivate *device_p = air_quality->p; GetAllValues_Request request; GetAllValues_Response response; int ret; ret = packet_header_create(&request.header, sizeof(request), AIR_QUALITY_FUNCTION_GET_ALL_VALUES, device_p->ipcon_p, device_p); if (ret < 0) { return ret; } ret = device_send_request(device_p, (Packet *)&request, (Packet *)&response); if (ret < 0) { return ret; } *ret_iaq_index = leconvert_int32_from(response.iaq_index); *ret_iaq_index_accuracy = response.iaq_index_accuracy; *ret_temperature = leconvert_int32_from(response.temperature); *ret_humidity = leconvert_int32_from(response.humidity); *ret_air_pressure = leconvert_int32_from(response.air_pressure); return ret; }
int gps_get_altitude(GPS *gps, int32_t *ret_altitude, int32_t *ret_geoidal_separation) { DevicePrivate *device_p = gps->p; GetAltitude_ request; GetAltitudeResponse_ response; int ret; ret = packet_header_create(&request.header, sizeof(request), GPS_FUNCTION_GET_ALTITUDE, device_p->ipcon_p, device_p); if (ret < 0) { return ret; } ret = device_send_request(device_p, (Packet *)&request, (Packet *)&response); if (ret < 0) { return ret; } *ret_altitude = leconvert_int32_from(response.altitude); *ret_geoidal_separation = leconvert_int32_from(response.geoidal_separation); return ret; }
int air_quality_get_air_pressure_callback_configuration(AirQuality *air_quality, uint32_t *ret_period, bool *ret_value_has_to_change, char *ret_option, int32_t *ret_min, int32_t *ret_max) { DevicePrivate *device_p = air_quality->p; GetAirPressureCallbackConfiguration_Request request; GetAirPressureCallbackConfiguration_Response response; int ret; ret = packet_header_create(&request.header, sizeof(request), AIR_QUALITY_FUNCTION_GET_AIR_PRESSURE_CALLBACK_CONFIGURATION, device_p->ipcon_p, device_p); if (ret < 0) { return ret; } ret = device_send_request(device_p, (Packet *)&request, (Packet *)&response); if (ret < 0) { return ret; } *ret_period = leconvert_uint32_from(response.period); *ret_value_has_to_change = response.value_has_to_change != 0; *ret_option = response.option; *ret_min = leconvert_int32_from(response.min); *ret_max = leconvert_int32_from(response.max); return ret; }
static void gps_callback_wrapper_altitude(DevicePrivate *device_p, Packet *packet) { AltitudeCallbackFunction callback_function; void *user_data = device_p->registered_callback_user_data[GPS_CALLBACK_ALTITUDE]; AltitudeCallback_ *callback = (AltitudeCallback_ *)packet; *(void **)(&callback_function) = device_p->registered_callbacks[GPS_CALLBACK_ALTITUDE]; if (callback_function == NULL) { return; } callback->altitude = leconvert_int32_from(callback->altitude); callback->geoidal_separation = leconvert_int32_from(callback->geoidal_separation); callback_function(callback->altitude, callback->geoidal_separation, user_data); }
static void air_quality_callback_wrapper_all_values(DevicePrivate *device_p, Packet *packet) { AllValues_CallbackFunction callback_function; void *user_data = device_p->registered_callback_user_data[DEVICE_NUM_FUNCTION_IDS + AIR_QUALITY_CALLBACK_ALL_VALUES]; AllValues_Callback *callback = (AllValues_Callback *)packet; *(void **)(&callback_function) = device_p->registered_callbacks[DEVICE_NUM_FUNCTION_IDS + AIR_QUALITY_CALLBACK_ALL_VALUES]; if (callback_function == NULL) { return; } callback->iaq_index = leconvert_int32_from(callback->iaq_index); callback->temperature = leconvert_int32_from(callback->temperature); callback->humidity = leconvert_int32_from(callback->humidity); callback->air_pressure = leconvert_int32_from(callback->air_pressure); callback_function(callback->iaq_index, callback->iaq_index_accuracy, callback->temperature, callback->humidity, callback->air_pressure, user_data); }
static void air_quality_callback_wrapper_air_pressure(DevicePrivate *device_p, Packet *packet) { AirPressure_CallbackFunction callback_function; void *user_data = device_p->registered_callback_user_data[DEVICE_NUM_FUNCTION_IDS + AIR_QUALITY_CALLBACK_AIR_PRESSURE]; AirPressure_Callback *callback = (AirPressure_Callback *)packet; *(void **)(&callback_function) = device_p->registered_callbacks[DEVICE_NUM_FUNCTION_IDS + AIR_QUALITY_CALLBACK_AIR_PRESSURE]; if (callback_function == NULL) { return; } callback->air_pressure = leconvert_int32_from(callback->air_pressure); callback_function(callback->air_pressure, user_data); }
static void air_quality_callback_wrapper_humidity(DevicePrivate *device_p, Packet *packet) { Humidity_CallbackFunction callback_function; void *user_data = device_p->registered_callback_user_data[DEVICE_NUM_FUNCTION_IDS + AIR_QUALITY_CALLBACK_HUMIDITY]; Humidity_Callback *callback = (Humidity_Callback *)packet; *(void **)(&callback_function) = device_p->registered_callbacks[DEVICE_NUM_FUNCTION_IDS + AIR_QUALITY_CALLBACK_HUMIDITY]; if (callback_function == NULL) { return; } callback->humidity = leconvert_int32_from(callback->humidity); callback_function(callback->humidity, user_data); }
static void air_quality_callback_wrapper_iaq_index(DevicePrivate *device_p, Packet *packet) { IAQIndex_CallbackFunction callback_function; void *user_data = device_p->registered_callback_user_data[DEVICE_NUM_FUNCTION_IDS + AIR_QUALITY_CALLBACK_IAQ_INDEX]; IAQIndex_Callback *callback = (IAQIndex_Callback *)packet; *(void **)(&callback_function) = device_p->registered_callbacks[DEVICE_NUM_FUNCTION_IDS + AIR_QUALITY_CALLBACK_IAQ_INDEX]; if (callback_function == NULL) { return; } callback->iaq_index = leconvert_int32_from(callback->iaq_index); callback_function(callback->iaq_index, callback->iaq_index_accuracy, user_data); }
int load_cell_get_weight_callback_threshold(LoadCell *load_cell, char *ret_option, int32_t *ret_min, int32_t *ret_max) { DevicePrivate *device_p = load_cell->p; GetWeightCallbackThreshold_Request request; GetWeightCallbackThreshold_Response response; int ret; ret = packet_header_create(&request.header, sizeof(request), LOAD_CELL_FUNCTION_GET_WEIGHT_CALLBACK_THRESHOLD, device_p->ipcon_p, device_p); if (ret < 0) { return ret; } ret = device_send_request(device_p, (Packet *)&request, (Packet *)&response); if (ret < 0) { return ret; } *ret_option = response.option; *ret_min = leconvert_int32_from(response.min); *ret_max = leconvert_int32_from(response.max); return ret; }
static void load_cell_callback_wrapper_weight_reached(DevicePrivate *device_p, Packet *packet) { WeightReached_CallbackFunction callback_function; void *user_data = device_p->registered_callback_user_data[DEVICE_NUM_FUNCTION_IDS + LOAD_CELL_CALLBACK_WEIGHT_REACHED]; WeightReached_Callback *callback = (WeightReached_Callback *)packet; *(void **)(&callback_function) = device_p->registered_callbacks[DEVICE_NUM_FUNCTION_IDS + LOAD_CELL_CALLBACK_WEIGHT_REACHED]; if (callback_function == NULL) { return; } callback->weight = leconvert_int32_from(callback->weight); callback_function(callback->weight, user_data); }
int air_quality_get_air_pressure(AirQuality *air_quality, int32_t *ret_air_pressure) { DevicePrivate *device_p = air_quality->p; GetAirPressure_Request request; GetAirPressure_Response response; int ret; ret = packet_header_create(&request.header, sizeof(request), AIR_QUALITY_FUNCTION_GET_AIR_PRESSURE, device_p->ipcon_p, device_p); if (ret < 0) { return ret; } ret = device_send_request(device_p, (Packet *)&request, (Packet *)&response); if (ret < 0) { return ret; } *ret_air_pressure = leconvert_int32_from(response.air_pressure); return ret; }
int air_quality_get_humidity(AirQuality *air_quality, int32_t *ret_humidity) { DevicePrivate *device_p = air_quality->p; GetHumidity_Request request; GetHumidity_Response response; int ret; ret = packet_header_create(&request.header, sizeof(request), AIR_QUALITY_FUNCTION_GET_HUMIDITY, device_p->ipcon_p, device_p); if (ret < 0) { return ret; } ret = device_send_request(device_p, (Packet *)&request, (Packet *)&response); if (ret < 0) { return ret; } *ret_humidity = leconvert_int32_from(response.humidity); return ret; }
int air_quality_get_temperature_offset(AirQuality *air_quality, int32_t *ret_offset) { DevicePrivate *device_p = air_quality->p; GetTemperatureOffset_Request request; GetTemperatureOffset_Response response; int ret; ret = packet_header_create(&request.header, sizeof(request), AIR_QUALITY_FUNCTION_GET_TEMPERATURE_OFFSET, device_p->ipcon_p, device_p); if (ret < 0) { return ret; } ret = device_send_request(device_p, (Packet *)&request, (Packet *)&response); if (ret < 0) { return ret; } *ret_offset = leconvert_int32_from(response.offset); return ret; }
int load_cell_get_weight(LoadCell *load_cell, int32_t *ret_weight) { DevicePrivate *device_p = load_cell->p; GetWeight_Request request; GetWeight_Response response; int ret; ret = packet_header_create(&request.header, sizeof(request), LOAD_CELL_FUNCTION_GET_WEIGHT, device_p->ipcon_p, device_p); if (ret < 0) { return ret; } ret = device_send_request(device_p, (Packet *)&request, (Packet *)&response); if (ret < 0) { return ret; } *ret_weight = leconvert_int32_from(response.weight); return ret; }
int air_quality_get_iaq_index(AirQuality *air_quality, int32_t *ret_iaq_index, uint8_t *ret_iaq_index_accuracy) { DevicePrivate *device_p = air_quality->p; GetIAQIndex_Request request; GetIAQIndex_Response response; int ret; ret = packet_header_create(&request.header, sizeof(request), AIR_QUALITY_FUNCTION_GET_IAQ_INDEX, device_p->ipcon_p, device_p); if (ret < 0) { return ret; } ret = device_send_request(device_p, (Packet *)&request, (Packet *)&response); if (ret < 0) { return ret; } *ret_iaq_index = leconvert_int32_from(response.iaq_index); *ret_iaq_index_accuracy = response.iaq_index_accuracy; return ret; }