Common Sensor Service Data Visualizer.
Copyright (c) 2011-2018 Microchip Technology Inc. and its subsidiaries.
Macros | |
#define | ACCEL_INTERVAL 1 /* Loops per accel meas/xmit */ |
#define | ACCEL_STREAM_NUM 1 /* Accelerometer data stream number */ |
#define | ALL_LEDS (LED1 | LED2 | LED3 | LED4) |
#define | COMPASS_INTERVAL 5 /* Loops per compass meas/xmit */ |
#define | COMPASS_STREAM_NUM 3 /* Compass/magnetometer data stream number */ |
#define | GYRO_INTERVAL 3 /* Loops per gyro meas/xmit */ |
#define | GYRO_STREAM_NUM 2 /* Gyroscope data stream number */ |
#define | NUM_ACCEL_FIELDS 3 /* Accelerometer data fields in data packet */ |
#define | NUM_BLINK_LEDS (LED_COUNT - 1) /* Don't blink LED0 (shared gpio) */ |
#define | NUM_COMPASS_FIELDS 3 /* Compass data fields in data packet */ |
#define | NUM_GYRO_FIELDS 3 /* Gyroscope data fields in data packet */ |
#define | NUM_TEMP_FIELDS 1 /* Temperature data fields in data packet */ |
#define | PROMPT_LED LED4 /* Blink while waiting for user input */ |
#define | SWITCH_PRESSED gpio_pin_is_low(GPIO_PUSH_BUTTON_0) |
#define | TEMP_INTERVAL 10 /* Loops per temperature meas/xmit */ |
#define | TEMP_STREAM_NUM 4 /* Temperature data stream number */ |
#define | TIMESTAMP_RES 1000000 /* Timestamp resolution (1 per usec) */ |
Functions | |
int | main (void) |
Inertial sensor data visualizer demo application entry. More... | |
void | visual_stream_init (void) |
Initialize sensor data output streams for Atmel Data Visualizer. More... | |
Variables | |
static const uint32_t | led_array [LED_COUNT-1] = {LED1, LED2, LED3, LED4} |
#define ACCEL_INTERVAL 1 /* Loops per accel meas/xmit */ |
Referenced by main().
#define ACCEL_STREAM_NUM 1 /* Accelerometer data stream number */ |
Referenced by main(), and visual_stream_init().
#define ALL_LEDS (LED1 | LED2 | LED3 | LED4) |
Referenced by main().
#define COMPASS_INTERVAL 5 /* Loops per compass meas/xmit */ |
Referenced by main().
#define COMPASS_STREAM_NUM 3 /* Compass/magnetometer data stream number */ |
Referenced by main(), and visual_stream_init().
#define GYRO_INTERVAL 3 /* Loops per gyro meas/xmit */ |
Referenced by main().
#define GYRO_STREAM_NUM 2 /* Gyroscope data stream number */ |
Referenced by main(), and visual_stream_init().
Referenced by visual_stream_init().
Referenced by visual_stream_init().
Referenced by visual_stream_init().
Referenced by visual_stream_init().
#define PROMPT_LED LED4 /* Blink while waiting for user input */ |
Referenced by main().
#define SWITCH_PRESSED gpio_pin_is_low(GPIO_PUSH_BUTTON_0) |
Referenced by main().
#define TEMP_INTERVAL 10 /* Loops per temperature meas/xmit */ |
Referenced by main().
#define TEMP_STREAM_NUM 4 /* Temperature data stream number */ |
Referenced by main(), and visual_stream_init().
#define TIMESTAMP_RES 1000000 /* Timestamp resolution (1 per usec) */ |
Referenced by visual_stream_init().
int main | ( | void | ) |
Inertial sensor data visualizer demo application entry.
This application uses a serial connection to transmit sensor data. The data is formatted for use by the Atmel Data Visualizer application running on a remote host.
Upon entry, the hardware (including processor and sensor board) are initialized, and the sensor interfaces are established. The application then transmits a series of special data stream configuration packets, which tell the remote application the number, type, and labels for data streams that will subsequently be used.
After this initialization, the application enters a continuous loop in which it periodically samples the sensors that are defined and sends the obtained data values to the remote host in stream data packets. Each type of sensor measurement uses an interval counter to determine how often the measurement should be performed and transmitted.
References ACCEL_INTERVAL, ACCEL_STREAM_NUM, adv_data_send_1(), adv_data_send_3(), ALL_LEDS, sensor_data_t::axis, COMPASS_INTERVAL, COMPASS_STREAM_NUM, delay_ms, sensor_desc::err, GYRO_INTERVAL, GYRO_STREAM_NUM, sensor_data_t::heading, led_array, NUM_BLINK_LEDS, PROMPT_LED, sensor_data_t::scaled, sensor_attach(), sensor_get_acceleration(), sensor_get_heading(), sensor_get_rotation(), sensor_get_temperature(), sensor_platform_init(), SENSOR_TYPE_ACCELEROMETER, SENSOR_TYPE_COMPASS, SENSOR_TYPE_GYROSCOPE, SWITCH_PRESSED, TEMP_INTERVAL, TEMP_STREAM_NUM, sensor_data_t::temperature, sensor_data_t::timestamp, and visual_stream_init().
void visual_stream_init | ( | void | ) |
Initialize sensor data output streams for Atmel Data Visualizer.
This routine initializes the data streams used in this application for the Atmel Data Visualizer (ADV) tool. First, a start-of-configuration packet is constructed and sent. Next, each data stream is described with a stream descriptor packet and either one or three field descriptor packets (depending on how many data fields are used to report a single set of data from that device). After all streams and data fields have been described, an end-of-configuration packet is sent.
References ACCEL_STREAM_NUM, adv_config_start_t, ADV_PKT_CONFIG_END, ADV_PKT_CONFIG_FIELD, ADV_PKT_CONFIG_START, ADV_PKT_CONFIG_STREAM, ADV_PKT_END, ADV_PKT_HEADER_1, ADV_PKT_HEADER_2, COMPASS_STREAM_NUM, cpu_to_le16, cpu_to_le32, adv_config_stream_t::crc, adv_config_field_t::crc, adv_config_end_t::crc, FIELD_FORMAT_SIGNED, adv_config_field_t::field_length, adv_config_field_t::field_num, adv_config_field_t::format, GYRO_STREAM_NUM, adv_config_stream_t::header1, adv_config_field_t::header1, adv_config_end_t::header1, adv_config_stream_t::header2, adv_config_field_t::header2, adv_config_end_t::header2, adv_config_stream_t::length, adv_config_field_t::length, adv_config_end_t::length, adv_config_stream_t::mark, adv_config_field_t::mark, adv_config_end_t::mark, adv_config_field_t::max, adv_config_field_t::min, adv_config_field_t::name, NUM_ACCEL_FIELDS, NUM_COMPASS_FIELDS, adv_config_stream_t::num_fields, NUM_GYRO_FIELDS, adv_config_end_t::num_streams, NUM_TEMP_FIELDS, adv_config_stream_t::stream_name, adv_config_stream_t::stream_num, adv_config_field_t::stream_num, TEMP_STREAM_NUM, adv_config_stream_t::tick_res, TIMESTAMP_RES, adv_config_stream_t::type, adv_config_field_t::type, adv_config_end_t::type, and adv_config_field_t::units.
Referenced by main().