int main(void) { // Create IP connection IPConnection ipcon; ipcon_create(&ipcon); // Create device object TemperatureIR tir; temperature_ir_create(&tir, UID, &ipcon); // Connect to brickd if(ipcon_connect(&ipcon, HOST, PORT) < 0) { fprintf(stderr, "Could not connect\n"); return 1; } // Don't use device before ipcon is connected // Get current ambient temperature (unit is °C/10) int16_t ambient_temperature; if(temperature_ir_get_ambient_temperature(&tir, &ambient_temperature) < 0) { fprintf(stderr, "Could not get ambient temperature, probably timeout\n"); return 1; } printf("Ambient Temperature: %f °C\n", ambient_temperature/10.0); // Get current object temperature (unit is °C/10) int16_t object_temperature; if(temperature_ir_get_object_temperature(&tir, &object_temperature) < 0) { fprintf(stderr, "Could not get object temperature, probably timeout\n"); return 1; } printf("Object Temperature: %f °C\n", object_temperature/10.0); printf("Press key to exit\n"); getchar(); temperature_ir_destroy(&tir); ipcon_destroy(&ipcon); // Calls ipcon_disconnect internally return 0; }
int main(void) { // Create IP connection IPConnection ipcon; ipcon_create(&ipcon); // Create device object TemperatureIR tir; temperature_ir_create(&tir, UID, &ipcon); // Connect to brickd if(ipcon_connect(&ipcon, HOST, PORT) < 0) { fprintf(stderr, "Could not connect\n"); return 1; } // Don't use device before ipcon is connected // Set emissivity to 0.98 (emissivity of water, 65535 * 0.98 = 64224.299) temperature_ir_set_emissivity(&tir, 64224); // Get threshold callbacks with a debounce time of 10 seconds (10000ms) temperature_ir_set_debounce_period(&tir, 10000); // Register object temperature reached callback to function // cb_object_temperature_reached temperature_ir_register_callback(&tir, TEMPERATURE_IR_CALLBACK_OBJECT_TEMPERATURE_REACHED, (void *)cb_object_temperature_reached, NULL); // Configure threshold for object temperature "greater than 100 °C" temperature_ir_set_object_temperature_callback_threshold(&tir, '>', 100*10, 0); printf("Press key to exit\n"); getchar(); temperature_ir_destroy(&tir); ipcon_destroy(&ipcon); // Calls ipcon_disconnect internally return 0; }