18#define main robot_main
53#ifndef MAX_PAYLOAD_SIZE_BYTES
54#define MAX_PAYLOAD_SIZE_BYTES 382
62#ifndef MAX_NUMBER_OF_WORD
63#define MAX_NUMBER_OF_WORD 20
75#define pogobot_infrared_emitter_power_max 3
76#define pogobot_infrared_emitter_power_twoThird 2
77#define pogobot_infrared_emitter_power_oneThird 1
78#define pogobot_infrared_emitter_power_null 0
80#define pogobot_infrared_emitter_width_bits 2
82#define pogobot_infrared_emitting_power_list( front, right, back, left ) \
83 ( front ) | ( ( right ) << ( pogobot_infrared_emitter_width_bits ) ) | \
84 ( ( back ) << ( 2 * pogobot_infrared_emitter_width_bits ) ) | \
85 ( ( left ) << ( 3 * pogobot_infrared_emitter_width_bits ) )
87#define get_infrared_emitter_dir(dir, emitting_power_list) (((emitting_power_list) >> ((pogobot_infrared_emitter_width_bits) * (dir))) & 0x03)
117#define pogobot_infrared_emitter_front_mask ( 1 << 0 )
118#define pogobot_infrared_emitter_right_mask ( 1 << 8 )
119#define pogobot_infrared_emitter_back_mask ( 1 << 16 )
120#define pogobot_infrared_emitter_left_mask ( 1 << 24 )
122#define pogobot_infrared_emitter_mask_byindex( index ) ( 1 << ( 8 * index ) )
880 uint32_t get_elapsed_microseconds();
883 void add_elapsed_microseconds(uint64_t microseconds);
884 void offset_origin_microseconds(uint64_t microseconds);
1019void msleep(
int milliseconds);
1078#define init_from_configuration(x) \
1080 bool: init_bool_from_configuration, \
1081 double: init_double_from_configuration, \
1082 float: init_float_from_configuration, \
1083 int32_t: init_int32_from_configuration, \
1084 uint32_t: init_uint32_from_configuration, \
1085 int16_t: init_int16_from_configuration, \
1086 uint16_t: init_uint16_from_configuration, \
1087 int8_t: init_int8_from_configuration, \
1088 uint8_t: init_uint8_from_configuration \
1091#define init_array_from_configuration(a) \
1093 float (*)[] : init_float_array_from_configuration, \
1094 double (*)[] : init_double_array_from_configuration, \
1095 char (*)[] : init_string_from_configuration \
1096 )((a), #a, sizeof(a) / sizeof((a)[0]))
1100#define printf pogosim_printf
1101#define putchar pogosim_putchar
#define FifoBuffer_typedef(T, NAME)
Definition FifoBuffer.h:14
photosensor_id
Definition spogobot.h:529
@ p_B
Definition spogobot.h:532
@ p_FL
Definition spogobot.h:530
@ p_FR
Definition spogobot.h:531
#define pogobot_infrared_emitter_power_max
Definition spogobot.h:75
void pogobot_timer_init(time_reference_t *timer, int32_t microseconds_to_go)
Definition spogobot.cpp:437
motor_range
Definition spogobot.h:635
@ motorFull
Definition spogobot.h:640
@ motorThreeQuarter
Definition spogobot.h:639
@ motorHalf
Definition spogobot.h:638
@ motorQuarter
Definition spogobot.h:637
@ motorStop
Definition spogobot.h:636
uint32_t pogobot_motor_dir_current_status(void)
Definition spogobot.cpp:353
void data_add_column_double(char const *name)
Definition spogobot.cpp:558
uint32_t pogobot_infrared_sendShortMessage_omni(uint8_t *message, uint16_t message_size)
Definition spogobot.cpp:239
void disable_data_export(void)
Definition spogobot.cpp:542
void init_uint16_from_configuration(uint16_t *var, char const *name, uint16_t const default_value)
Definition spogobot.cpp:623
ir_direction
Definition spogobot.h:148
@ ir_back
Definition spogobot.h:151
@ ir_right
Definition spogobot.h:150
@ ir_all
Definition spogobot.h:153
@ ir_left
Definition spogobot.h:152
@ ir_front
Definition spogobot.h:149
int8_t pogobot_motor_dir_mem_set(uint8_t *p_directions)
Definition spogobot.cpp:364
void pogobot_helper_print_version(void)
Definition spogobot.cpp:404
int32_t pogobot_timer_get_remaining_microseconds(time_reference_t *timer)
Definition spogobot.cpp:442
void msleep(int milliseconds)
Definition spogobot.cpp:469
void stop_simulation(void)
Definition spogobot.cpp:534
void data_set_value_int64(char const *name, int64_t value)
Definition spogobot.cpp:580
uint32_t pogobot_infrared_sendShortMessage_uni(ir_direction dir, uint8_t *message, uint16_t message_size)
Definition spogobot.cpp:232
uint32_t pogobot_infrared_sendLongMessage_omniSpe(uint8_t *message, uint16_t message_size)
Definition spogobot.cpp:215
void pogobot_motor_dir_set(motor_id motor, uint8_t value)
Definition spogobot.cpp:369
void data_set_value_string(char const *name, char const *value)
Definition spogobot.cpp:586
void pogobot_motor_set(motor_id motor, uint16_t value)
Definition spogobot.cpp:349
uint8_t pogobot_motor_power_mem_set(uint16_t *p_powers)
Definition spogobot.cpp:380
uint32_t pogobot_infrared_sendRawLongMessage(message_t *const message)
Definition spogobot.cpp:135
int16_t pogobot_helper_getRandSeed(void)
Definition spogobot.cpp:395
void init_double_from_configuration(double *var, char const *name, double const default_value)
Definition spogobot.cpp:602
void data_set_value_float16(char const *name, float value)
Definition spogobot.cpp:592
float pogobot_imu_readTemp(void)
Definition spogobot.cpp:316
void data_add_column_int32(char const *name)
Definition spogobot.cpp:552
void init_uint32_from_configuration(uint32_t *var, char const *name, uint32_t const default_value)
Definition spogobot.cpp:615
int pogosim_putchar(int ch)
Definition spogobot.cpp:524
uint16_t pogobot_helper_getid(void)
Definition spogobot.cpp:391
void data_add_column_float16(char const *name)
Definition spogobot.cpp:567
int16_t pogobot_photosensors_read(uint8_t sensor_number)
Definition spogobot.cpp:279
void pogobot_infrared_recover_next_message(message_t *mes)
Definition spogobot.cpp:113
void pogobot_imu_read(float *acc, float *gyro)
Definition spogobot.cpp:296
void init_int16_from_configuration(int16_t *var, char const *name, int16_t const default_value)
Definition spogobot.cpp:619
int32_t pogobot_stopwatch_get_elapsed_microseconds(time_reference_t *stopwatch)
Definition spogobot.cpp:429
void init_float_from_configuration(float *var, char const *name, float const default_value)
Definition spogobot.cpp:606
void init_int32_from_configuration(int32_t *var, char const *name, int32_t const default_value)
Definition spogobot.cpp:611
uint32_t pogobot_infrared_sendRawShortMessage(ir_direction dir, short_message_t *const message)
Definition spogobot.cpp:184
uint32_t pogobot_infrared_sendLongMessage_omniGen(uint8_t *message, uint16_t message_size)
Definition spogobot.cpp:205
void init_double_array_from_configuration(double *var, char const *name, size_t const size)
Definition spogobot.cpp:692
uint32_t pogobot_infrared_sendLongMessage_uniSpe(ir_direction dir, uint8_t *message, uint16_t message_size)
Definition spogobot.cpp:195
void pogobot_infrared_set_power(uint8_t power)
Definition spogobot.cpp:131
void data_set_value_double(char const *name, double value)
Definition spogobot.cpp:583
void init_int8_from_configuration(int8_t *var, char const *name, int8_t const default_value)
Definition spogobot.cpp:627
void init_uint8_from_configuration(uint8_t *var, char const *name, uint8_t const default_value)
Definition spogobot.cpp:631
void pogobot_stopwatch_reset(time_reference_t *stopwatch)
Definition spogobot.cpp:419
#define pogobot_infrared_emitter_width_bits
Definition spogobot.h:80
int16_t pogobot_battery_voltage_read(void)
Definition spogobot.cpp:331
void enable_data_export(void)
Definition spogobot.cpp:538
uint32_t get_nb_robots(void)
Definition spogobot.cpp:530
void data_set_value_int16(char const *name, int16_t value)
Definition spogobot.cpp:574
int pogobot_infrared_message_available(void)
Definition spogobot.cpp:109
void pogobot_led_setColors(const uint8_t r, const uint8_t g, const uint8_t b, uint8_t id)
Definition spogobot.cpp:269
void data_add_column_int16(char const *name)
Definition spogobot.cpp:549
void data_add_column_bool(char const *name)
Definition spogobot.cpp:564
void data_set_value_int32(char const *name, int32_t value)
Definition spogobot.cpp:577
ir_type_message
Definition spogobot.h:253
@ ir_t_user
Definition spogobot.h:257
@ ir_t_flash
Definition spogobot.h:255
@ ir_t_cmd
Definition spogobot.h:254
@ ir_t_short
Definition spogobot.h:256
#define MAX_PAYLOAD_SIZE_BYTES
Definition spogobot.h:54
@ pogobot_infrared_emitting_power_list_back_full
Definition spogobot.h:96
@ pogobot_infrared_emitting_power_list_front_full
Definition spogobot.h:91
@ pogobot_infrared_emitting_power_list_left_full
Definition spogobot.h:99
@ pogobot_infrared_emitting_power_list_all_full
Definition spogobot.h:102
@ pogobot_infrared_emitting_power_list_right_full
Definition spogobot.h:93
void data_add_column_int64(char const *name)
Definition spogobot.cpp:555
void pogobot_stopwatch_offset_origin_microseconds(time_reference_t *stopwatch, int32_t microseconds_offset)
Definition spogobot.cpp:433
Messagefifo * my_mes_fifo_p
void pogobot_infrared_update(void)
Definition spogobot.cpp:105
void pogosim_printf(const char *format,...)
Definition spogobot.cpp:495
void pogobot_infrared_ll_init(void)
Definition spogobot.cpp:101
void pogobot_infrared_clear_message_queue(void)
Definition spogobot.cpp:123
void init_string_from_configuration(char *var, char const *name, size_t const size)
void data_add_column_string(char const *name)
Definition spogobot.cpp:561
void data_set_value_int8(char const *name, int8_t value)
Definition spogobot.cpp:571
void data_set_value_bool(char const *name, bool value)
Definition spogobot.cpp:589
void pogobot_timer_wait_for_expiry(time_reference_t *timer)
Definition spogobot.cpp:452
int8_t pogobot_motor_dir_mem_get(uint8_t *p_directions)
Definition spogobot.cpp:359
uint8_t pogobot_motor_power_mem_get(uint16_t *p_powers)
Definition spogobot.cpp:375
void pogobot_timer_offset_origin_microseconds(time_reference_t *timer, int32_t microseconds_offset)
Definition spogobot.cpp:460
void pogobot_led_setColor(const uint8_t r, const uint8_t g, const uint8_t b)
Definition spogobot.cpp:264
void init_bool_from_configuration(bool *var, char const *name, bool const default_value)
Definition spogobot.cpp:598
void pogobot_infrared_get_receiver_error_counter(slip_error_counter_s *error_counter, uint8_t ir_index)
Definition spogobot.cpp:250
bool pogobot_timer_has_expired(time_reference_t *timer)
Definition spogobot.cpp:448
void pli_timer_sleep_stopwatch_init(void)
Definition spogobot.cpp:414
void data_add_column_int8(char const *name)
Definition spogobot.cpp:546
motor_id
Definition spogobot.h:619
@ motorR
Definition spogobot.h:620
@ motorL
Definition spogobot.h:621
@ motorB
Definition spogobot.h:622
void init_float_array_from_configuration(float *var, char const *name, size_t const size)
Definition spogobot.cpp:676
void pogobot_motor_power_set(motor_id motor, uint16_t value)
Definition spogobot.cpp:341
void pogobot_init(void)
Definition spogobot.cpp:91
int32_t pogobot_stopwatch_lap(time_reference_t *stopwatch)
Definition spogobot.cpp:423
void pogobot_infrared_reset_receiver_error_counter(void)
Definition spogobot.cpp:255
Definition spogobot.h:205
message_header_t header
Definition spogobot.h:206
uint8_t payload[MAX_PAYLOAD_SIZE_BYTES]
Definition spogobot.h:207
Definition spogobot.h:238
message_short_header_t header
Definition spogobot.h:239
uint8_t payload[MAX_PAYLOAD_SIZE_BYTES]
Definition spogobot.h:240
Definition spogobot.h:159
uint32_t unknown_escaped_byte_counter
Definition spogobot.h:161
uint32_t crc_mismatch_counter
Definition spogobot.h:162
uint32_t overflow_counter
Definition spogobot.h:160
Definition spogobot.h:877
uint32_t elapsed_ms
Definition spogobot.h:891
uint64_t start_time
Definition spogobot.h:890
bool enabled
Definition spogobot.h:888
uint32_t hardware_value_at_time_origin
Definition spogobot.h:887
Definition spogobot.h:125
uint8_t back
Definition spogobot.h:131
uint8_t right
Definition spogobot.h:132
uint8_t array[4]
Definition spogobot.h:134
struct emitting_power_list_t::@250061334135076261050064362000365057264236024353 fields
uint32_t number
Definition spogobot.h:126
uint8_t left
Definition spogobot.h:130
uint8_t front
Definition spogobot.h:129