예제 #1
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

	// 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;
}