diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json new file mode 100644 index 0000000..ac75f2c --- /dev/null +++ b/.config/dotnet-tools.json @@ -0,0 +1,13 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "harp.toolkit": { + "version": "0.2.2", + "commands": [ + "harp.toolkit" + ], + "rollForward": false + } + } +} \ No newline at end of file diff --git a/.github/workflows/Harp.Behavior.yml b/.github/workflows/Harp.Behavior.yml index 2bf2904..6ec6f5d 100644 --- a/.github/workflows/Harp.Behavior.yml +++ b/.github/workflows/Harp.Behavior.yml @@ -82,8 +82,8 @@ jobs: with: dotnet-version: 8.x - - name: Set up T4 - run: dotnet tool install -g dotnet-t4 --version 3.0.0 + - name: Set up .NET tools + run: dotnet tool restore # ----------------------------------------------------------------------- Configure build - name: Configure build @@ -91,11 +91,8 @@ jobs: uses: harp-tech/configure-build@v1 # ----------------------------------------------------------------------- Regenerate - - name: Restore generators - run: dotnet restore Generators - - name: Run generators - run: dotnet build Generators --no-restore --configuration ${{matrix.configuration}} + run: dotnet harp.toolkit generate interface -o Interface/${{github.workflow}} - name: Verify pre-generated code was up-to-date id: verify-dist diff --git a/Firmware/Behavior/app.c b/Firmware/Behavior/app.c index 2166ed0..adf41df 100644 --- a/Firmware/Behavior/app.c +++ b/Firmware/Behavior/app.c @@ -159,29 +159,29 @@ void core_callback_reset_registers(void) //app_regs.REG_PORTS_IN = 0; //app_regs.REG_POKE_DIG_IN = 0; - app_regs.REG_OUTPUTS_SET = 0; - app_regs.REG_OUTPUTS_CLEAR = 0; - app_regs.REG_OUTPUTS_TOGGLE = 0; - app_regs.REG_OUTPUTS_OUT = 0; + app_regs.REG_OUTPUT_SET = 0; + app_regs.REG_OUTPUT_CLEAR = 0; + app_regs.REG_OUTPUT_TOGGLE = 0; + app_regs.REG_OUTPUT_STATE = 0; - app_regs.REG_PORT_DIOS_SET = 0; - app_regs.REG_PORT_DIOS_CLEAR = 0; - app_regs.REG_PORT_DIOS_TOGGLE = 0; - app_regs.REG_PORT_DIOS_OUT = 0; - app_regs.REG_PORT_DIOS_CONF = 0; // All as inputs - //app_regs.REG_PORT_DIOS_IN = 0; + app_regs.REG_PORT_DIO_SET = 0; + app_regs.REG_PORT_DIO_CLEAR = 0; + app_regs.REG_PORT_DIO_TOGGLE = 0; + app_regs.REG_PORT_DIO_STATE = 0; + app_regs.REG_PORT_DIO_DIRECTION = 0; // All as inputs + //app_regs.REG_PORT_DIO_STATE_EVENT = 0; - //app_regs.REG_DATA[0] = 0; - app_regs.REG_DATA[1] = 0; + //app_regs.REG_ANALOG_DATA[0] = 0; + app_regs.REG_ANALOG_DATA[1] = 0; - app_regs.REG_OUTPUT_PULSE_EN = B_PORT0_12V | B_PORT1_12V | B_PORT2_12V; - - app_regs.REG_PULSE_PORT0_DO = 500; - app_regs.REG_PULSE_PORT1_DO = 500; - app_regs.REG_PULSE_PORT2_DO = 500; - app_regs.REG_PULSE_PORT0_12V = 15; - app_regs.REG_PULSE_PORT1_12V = 15; - app_regs.REG_PULSE_PORT2_12V = 15; + app_regs.REG_OUTPUT_PULSE_ENABLE = B_SUPPLY_PORT0 | B_SUPPLY_PORT1 | B_SUPPLY_PORT2; + + app_regs.REG_PULSE_DO_PORT0 = 500; + app_regs.REG_PULSE_DO_PORT1 = 500; + app_regs.REG_PULSE_DO_PORT2 = 500; + app_regs.REG_PULSE_SUPPLY_PORT0 = 15; + app_regs.REG_PULSE_SUPPLY_PORT1 = 15; + app_regs.REG_PULSE_SUPPLY_PORT2 = 15; app_regs.REG_PULSE_LED0 = 500; app_regs.REG_PULSE_LED1 = 500; app_regs.REG_PULSE_RGB0 = 500; @@ -191,25 +191,25 @@ void core_callback_reset_registers(void) app_regs.REG_PULSE_DO2 = 250; app_regs.REG_PULSE_DO3 = 250; - app_regs.REG_FREQ_DO0 = 1000; - app_regs.REG_FREQ_DO1 = 2000; - app_regs.REG_FREQ_DO2 = 3000; - app_regs.REG_FREQ_DO3 = 4000; + app_regs.REG_PWM_FREQUENCY_DO0 = 1000; + app_regs.REG_PWM_FREQUENCY_DO1 = 2000; + app_regs.REG_PWM_FREQUENCY_DO2 = 3000; + app_regs.REG_PWM_FREQUENCY_DO3 = 4000; - app_regs.REG_DCYCLE_DO0 = 50; - app_regs.REG_DCYCLE_DO1 = 50; - app_regs.REG_DCYCLE_DO2 = 50; - app_regs.REG_DCYCLE_DO3 = 50; + app_regs.REG_PWM_DUTY_CYCLE_DO0 = 50; + app_regs.REG_PWM_DUTY_CYCLE_DO1 = 50; + app_regs.REG_PWM_DUTY_CYCLE_DO2 = 50; + app_regs.REG_PWM_DUTY_CYCLE_DO3 = 50; app_regs.REG_PWM_START = 0; app_regs.REG_PWM_STOP = 0; - app_regs.REG_RGBS[0] = 255; // Green - app_regs.REG_RGBS[1] = 0; // Red - app_regs.REG_RGBS[2] = 0; // Blue - app_regs.REG_RGBS[3] = 0; // Green - app_regs.REG_RGBS[4] = 0; // Red - app_regs.REG_RGBS[5] = 255; // Blue + app_regs.REG_RGB_ALL[0] = 255; // Green + app_regs.REG_RGB_ALL[1] = 0; // Red + app_regs.REG_RGB_ALL[2] = 0; // Blue + app_regs.REG_RGB_ALL[3] = 0; // Green + app_regs.REG_RGB_ALL[4] = 0; // Red + app_regs.REG_RGB_ALL[5] = 255; // Blue app_regs.REG_RGB0[0] = 255; // Green app_regs.REG_RGB0[1] = 0; // Red @@ -224,23 +224,23 @@ void core_callback_reset_registers(void) app_regs.REG_LED0_MAX_CURRENT = 30; app_regs.REG_LED1_MAX_CURRENT = 30; - app_regs.REG_EVNT_ENABLE = B_EVT_PORT_DIS | B_EVT_PORT_DIOS_IN | B_EVT_DATA | B_EVT_CAM0 | B_EVT_CAM1; + app_regs.REG_EVENT_ENABLE = B_PORT_DI | B_PORT_DIO | B_ANALOG_DATA | B_CAMERA0 | B_CAMERA1; app_regs.REG_START_CAMERAS = 0; app_regs.REG_STOP_CAMERAS = 0; - app_regs.REG_EN_SERVOS = 0; - app_regs.REG_DIS_SERVOS = 0; - app_regs.REG_EN_ENCODERS = 0; + app_regs.REG_ENABLE_SERVOS = 0; + app_regs.REG_DISABLE_SERVOS = 0; + app_regs.REG_ENABLE_ENCODERS = 0; - app_regs.REG_CAM_OUT0_FREQ = 30; - app_regs.REG_CAM_OUT1_FREQ = 30; + app_regs.REG_CAMERA0_FREQUENCY = 30; + app_regs.REG_CAMERA1_FREQUENCY = 30; - app_regs.REG_MOTOR_OUT2_PERIOD = 20000; - app_regs.REG_MOTOR_OUT2_PULSE = 1500; - app_regs.REG_MOTOR_OUT3_PERIOD = 20000; - app_regs.REG_MOTOR_OUT3_PULSE = 1500; + app_regs.REG_SERVO_MOTOR2_PERIOD = 20000; + app_regs.REG_SERVO_MOTOR2_PULSE = 1500; + app_regs.REG_SERVO_MOTOR3_PERIOD = 20000; + app_regs.REG_SERVO_MOTOR3_PULSE = 1500; - app_regs.REG_POKE_INPUT_FILTER_MS = 1; + app_regs.REG_POKE_INPUT_FILTER = 1; } extern ports_state_t _states_; @@ -266,28 +266,28 @@ void core_callback_registers_were_reinitialized(void) _states_.quad_counter.port1 = false; _states_.quad_counter.port2 = false; - aux16b = app_regs.REG_OUTPUTS_OUT; - app_write_REG_OUTPUTS_OUT(&aux16b); + aux16b = app_regs.REG_OUTPUT_STATE; + app_write_REG_OUTPUT_STATE(&aux16b); aux8b = app_regs.REG_LED0_CURRENT; app_write_REG_LED0_CURRENT(&aux8b); aux8b = app_regs.REG_LED1_CURRENT; app_write_REG_LED1_CURRENT(&aux8b); - aux16b = app_regs.REG_FREQ_DO0; - app_write_REG_FREQ_DO0(&aux16b); - aux16b = app_regs.REG_FREQ_DO1; - app_write_REG_FREQ_DO1(&aux16b); - aux16b = app_regs.REG_FREQ_DO2; - app_write_REG_FREQ_DO2(&aux16b); - aux16b = app_regs.REG_FREQ_DO3; - app_write_REG_FREQ_DO3(&aux16b); + aux16b = app_regs.REG_PWM_FREQUENCY_DO0; + app_write_REG_PWM_FREQUENCY_DO0(&aux16b); + aux16b = app_regs.REG_PWM_FREQUENCY_DO1; + app_write_REG_PWM_FREQUENCY_DO1(&aux16b); + aux16b = app_regs.REG_PWM_FREQUENCY_DO2; + app_write_REG_PWM_FREQUENCY_DO2(&aux16b); + aux16b = app_regs.REG_PWM_FREQUENCY_DO3; + app_write_REG_PWM_FREQUENCY_DO3(&aux16b); aux8b = app_regs.REG_PWM_START; app_write_REG_PWM_START(&aux8b); - aux8b = app_regs.REG_EN_ENCODERS; - app_write_REG_EN_ENCODERS(&aux8b); + aux8b = app_regs.REG_ENABLE_ENCODERS; + app_write_REG_ENABLE_ENCODERS(&aux8b); aux8b = app_regs.REG_MIMIC_PORT0_IR; app_write_REG_MIMIC_PORT0_IR(&aux8b); @@ -303,7 +303,7 @@ void core_callback_registers_were_reinitialized(void) aux8b = app_regs.REG_MIMIC_PORT2_VALVE; app_write_REG_MIMIC_PORT2_VALVE(&aux8b); - app_regs.REG_POKE_INPUT_FILTER_MS = 1; + app_regs.REG_POKE_INPUT_FILTER = 1; } /************************************************************************/ @@ -313,7 +313,7 @@ void core_callback_visualen_to_on(void) {} void core_callback_visualen_to_off(void) {} /************************************************************************/ -/* Callbacks: Change on the operation mode */ +/* Callbacks: Change to the operation mode */ /************************************************************************/ extern bool stop_camera_do0; extern bool stop_camera_do1; @@ -370,24 +370,24 @@ void core_callback_t_before_exec(void) ADCA_CH0_CTRL |= ADC_CH_START_bm; /* Read encoder on Port 2 */ - if (app_regs.REG_EN_ENCODERS & B_EN_ENCODER_PORT2) + if (app_regs.REG_ENABLE_ENCODERS & B_ENCODER_PORT2) { int16_t timer_cnt = TCD1_CNT; - if (app_regs.REG_CONF_ENCODERS == GM_POSITION) + if (app_regs.REG_ENCODER_MODE == GM_ENCODER_MODE_POSITION) { if (timer_cnt > 32768) { - app_regs.REG_DATA[1] = 0xFFFF - timer_cnt; + app_regs.REG_ANALOG_DATA[1] = 0xFFFF - timer_cnt; } else { - app_regs.REG_DATA[1] = (32768 - timer_cnt) * -1; + app_regs.REG_ANALOG_DATA[1] = (32768 - timer_cnt) * -1; } } else { - app_regs.REG_DATA[1] = previous_encoder_poke2 - timer_cnt; + app_regs.REG_ANALOG_DATA[1] = previous_encoder_poke2 - timer_cnt; previous_encoder_poke2 = timer_cnt; } @@ -512,7 +512,7 @@ void core_callback_t_1ms(void) } /************************************************************************/ -/* Callbacks: cloc control */ +/* Callbacks: clock control */ /************************************************************************/ void core_callback_clock_to_repeater(void) {} void core_callback_clock_to_generator(void) {} diff --git a/Firmware/Behavior/app.h b/Firmware/Behavior/app.h index 0254ba9..ef4e569 100644 --- a/Firmware/Behavior/app.h +++ b/Firmware/Behavior/app.h @@ -26,7 +26,7 @@ #define MAJOR_FW_VERSION 3 #endif #ifndef MINOR_FW_VERSION -#define MINOR_FW_VERSION 3 +#define MINOR_FW_VERSION 4 #endif #ifndef PATCH_FW_VERSION #define PATCH_FW_VERSION 0 diff --git a/Firmware/Behavior/app_funcs.c b/Firmware/Behavior/app_funcs.c index 00cd2bf..26d3826 100644 --- a/Firmware/Behavior/app_funcs.c +++ b/Firmware/Behavior/app_funcs.c @@ -21,26 +21,26 @@ ports_state_t _states_; extern AppRegs app_regs; void (*app_func_rd_pointer[])(void) = { - &app_read_REG_PORT_DIS, + &app_read_REG_DIGITAL_INPUT_STATE, &app_read_REG_RESERVED0, - &app_read_REG_OUTPUTS_SET, - &app_read_REG_OUTPUTS_CLEAR, - &app_read_REG_OUTPUTS_TOGGLE, - &app_read_REG_OUTPUTS_OUT, - &app_read_REG_PORT_DIOS_SET, - &app_read_REG_PORT_DIOS_CLEAR, - &app_read_REG_PORT_DIOS_TOGGLE, - &app_read_REG_PORT_DIOS_OUT, - &app_read_REG_PORT_DIOS_CONF, - &app_read_REG_PORT_DIOS_IN, - &app_read_REG_DATA, - &app_read_REG_OUTPUT_PULSE_EN, - &app_read_REG_PULSE_PORT0_DO, - &app_read_REG_PULSE_PORT1_DO, - &app_read_REG_PULSE_PORT2_DO, - &app_read_REG_PULSE_PORT0_12V, - &app_read_REG_PULSE_PORT1_12V, - &app_read_REG_PULSE_PORT2_12V, + &app_read_REG_OUTPUT_SET, + &app_read_REG_OUTPUT_CLEAR, + &app_read_REG_OUTPUT_TOGGLE, + &app_read_REG_OUTPUT_STATE, + &app_read_REG_PORT_DIO_SET, + &app_read_REG_PORT_DIO_CLEAR, + &app_read_REG_PORT_DIO_TOGGLE, + &app_read_REG_PORT_DIO_STATE, + &app_read_REG_PORT_DIO_DIRECTION, + &app_read_REG_PORT_DIO_STATE_EVENT, + &app_read_REG_ANALOG_DATA, + &app_read_REG_OUTPUT_PULSE_ENABLE, + &app_read_REG_PULSE_DO_PORT0, + &app_read_REG_PULSE_DO_PORT1, + &app_read_REG_PULSE_DO_PORT2, + &app_read_REG_PULSE_SUPPLY_PORT0, + &app_read_REG_PULSE_SUPPLY_PORT1, + &app_read_REG_PULSE_SUPPLY_PORT2, &app_read_REG_PULSE_LED0, &app_read_REG_PULSE_LED1, &app_read_REG_PULSE_RGB0, @@ -49,30 +49,30 @@ void (*app_func_rd_pointer[])(void) = { &app_read_REG_PULSE_DO1, &app_read_REG_PULSE_DO2, &app_read_REG_PULSE_DO3, - &app_read_REG_FREQ_DO0, - &app_read_REG_FREQ_DO1, - &app_read_REG_FREQ_DO2, - &app_read_REG_FREQ_DO3, - &app_read_REG_DCYCLE_DO0, - &app_read_REG_DCYCLE_DO1, - &app_read_REG_DCYCLE_DO2, - &app_read_REG_DCYCLE_DO3, + &app_read_REG_PWM_FREQUENCY_DO0, + &app_read_REG_PWM_FREQUENCY_DO1, + &app_read_REG_PWM_FREQUENCY_DO2, + &app_read_REG_PWM_FREQUENCY_DO3, + &app_read_REG_PWM_DUTY_CYCLE_DO0, + &app_read_REG_PWM_DUTY_CYCLE_DO1, + &app_read_REG_PWM_DUTY_CYCLE_DO2, + &app_read_REG_PWM_DUTY_CYCLE_DO3, &app_read_REG_PWM_START, &app_read_REG_PWM_STOP, - &app_read_REG_RGBS, + &app_read_REG_RGB_ALL, &app_read_REG_RGB0, &app_read_REG_RGB1, &app_read_REG_LED0_CURRENT, &app_read_REG_LED1_CURRENT, &app_read_REG_LED0_MAX_CURRENT, &app_read_REG_LED1_MAX_CURRENT, - &app_read_REG_EVNT_ENABLE, + &app_read_REG_EVENT_ENABLE, &app_read_REG_START_CAMERAS, &app_read_REG_STOP_CAMERAS, - &app_read_REG_EN_SERVOS, - &app_read_REG_DIS_SERVOS, - &app_read_REG_EN_ENCODERS, - &app_read_REG_CONF_ENCODERS, + &app_read_REG_ENABLE_SERVOS, + &app_read_REG_DISABLE_SERVOS, + &app_read_REG_ENABLE_ENCODERS, + &app_read_REG_ENCODER_MODE, &app_read_REG_RESERVED2, &app_read_REG_RESERVED3, &app_read_REG_RESERVED4, @@ -81,23 +81,23 @@ void (*app_func_rd_pointer[])(void) = { &app_read_REG_RESERVED7, &app_read_REG_RESERVED8, &app_read_REG_RESERVED9, - &app_read_REG_CAM_OUT0_FRAME_ACQUIRED, - &app_read_REG_CAM_OUT0_FREQ, - &app_read_REG_CAM_OUT1_FRAME_ACQUIRED, - &app_read_REG_CAM_OUT1_FREQ, + &app_read_REG_CAMERA0_FRAME, + &app_read_REG_CAMERA0_FREQUENCY, + &app_read_REG_CAMERA1_FRAME, + &app_read_REG_CAMERA1_FREQUENCY, &app_read_REG_RESERVED10, &app_read_REG_RESERVED11, &app_read_REG_RESERVED12, &app_read_REG_RESERVED13, - &app_read_REG_MOTOR_OUT2_PERIOD, - &app_read_REG_MOTOR_OUT2_PULSE, - &app_read_REG_MOTOR_OUT3_PERIOD, - &app_read_REG_MOTOR_OUT3_PULSE, + &app_read_REG_SERVO_MOTOR2_PERIOD, + &app_read_REG_SERVO_MOTOR2_PULSE, + &app_read_REG_SERVO_MOTOR3_PERIOD, + &app_read_REG_SERVO_MOTOR3_PULSE, &app_read_REG_RESERVED14, &app_read_REG_RESERVED15, &app_read_REG_RESERVED16, &app_read_REG_RESERVED17, - &app_read_REG_ENCODERS_RESET, + &app_read_REG_ENCODER_RESET, &app_read_REG_RESERVED18, &app_read_REG_ENABLE_SERIAL_TIMESTAMP, &app_read_REG_MIMIC_PORT0_IR, @@ -111,30 +111,30 @@ void (*app_func_rd_pointer[])(void) = { &app_read_REG_MIMIC_PORT2_VALVE, &app_read_REG_RESERVED23, &app_read_REG_RESERVED24, - &app_read_REG_POKE_INPUT_FILTER_MS + &app_read_REG_POKE_INPUT_FILTER }; bool (*app_func_wr_pointer[])(void*) = { - &app_write_REG_PORT_DIS, + &app_write_REG_DIGITAL_INPUT_STATE, &app_write_REG_RESERVED0, - &app_write_REG_OUTPUTS_SET, - &app_write_REG_OUTPUTS_CLEAR, - &app_write_REG_OUTPUTS_TOGGLE, - &app_write_REG_OUTPUTS_OUT, - &app_write_REG_PORT_DIOS_SET, - &app_write_REG_PORT_DIOS_CLEAR, - &app_write_REG_PORT_DIOS_TOGGLE, - &app_write_REG_PORT_DIOS_OUT, - &app_write_REG_PORT_DIOS_CONF, - &app_write_REG_PORT_DIOS_IN, - &app_write_REG_DATA, - &app_write_REG_OUTPUT_PULSE_EN, - &app_write_REG_PULSE_PORT0_DO, - &app_write_REG_PULSE_PORT1_DO, - &app_write_REG_PULSE_PORT2_DO, - &app_write_REG_PULSE_PORT0_12V, - &app_write_REG_PULSE_PORT1_12V, - &app_write_REG_PULSE_PORT2_12V, + &app_write_REG_OUTPUT_SET, + &app_write_REG_OUTPUT_CLEAR, + &app_write_REG_OUTPUT_TOGGLE, + &app_write_REG_OUTPUT_STATE, + &app_write_REG_PORT_DIO_SET, + &app_write_REG_PORT_DIO_CLEAR, + &app_write_REG_PORT_DIO_TOGGLE, + &app_write_REG_PORT_DIO_STATE, + &app_write_REG_PORT_DIO_DIRECTION, + &app_write_REG_PORT_DIO_STATE_EVENT, + &app_write_REG_ANALOG_DATA, + &app_write_REG_OUTPUT_PULSE_ENABLE, + &app_write_REG_PULSE_DO_PORT0, + &app_write_REG_PULSE_DO_PORT1, + &app_write_REG_PULSE_DO_PORT2, + &app_write_REG_PULSE_SUPPLY_PORT0, + &app_write_REG_PULSE_SUPPLY_PORT1, + &app_write_REG_PULSE_SUPPLY_PORT2, &app_write_REG_PULSE_LED0, &app_write_REG_PULSE_LED1, &app_write_REG_PULSE_RGB0, @@ -143,30 +143,30 @@ bool (*app_func_wr_pointer[])(void*) = { &app_write_REG_PULSE_DO1, &app_write_REG_PULSE_DO2, &app_write_REG_PULSE_DO3, - &app_write_REG_FREQ_DO0, - &app_write_REG_FREQ_DO1, - &app_write_REG_FREQ_DO2, - &app_write_REG_FREQ_DO3, - &app_write_REG_DCYCLE_DO0, - &app_write_REG_DCYCLE_DO1, - &app_write_REG_DCYCLE_DO2, - &app_write_REG_DCYCLE_DO3, + &app_write_REG_PWM_FREQUENCY_DO0, + &app_write_REG_PWM_FREQUENCY_DO1, + &app_write_REG_PWM_FREQUENCY_DO2, + &app_write_REG_PWM_FREQUENCY_DO3, + &app_write_REG_PWM_DUTY_CYCLE_DO0, + &app_write_REG_PWM_DUTY_CYCLE_DO1, + &app_write_REG_PWM_DUTY_CYCLE_DO2, + &app_write_REG_PWM_DUTY_CYCLE_DO3, &app_write_REG_PWM_START, &app_write_REG_PWM_STOP, - &app_write_REG_RGBS, + &app_write_REG_RGB_ALL, &app_write_REG_RGB0, &app_write_REG_RGB1, &app_write_REG_LED0_CURRENT, &app_write_REG_LED1_CURRENT, &app_write_REG_LED0_MAX_CURRENT, &app_write_REG_LED1_MAX_CURRENT, - &app_write_REG_EVNT_ENABLE, + &app_write_REG_EVENT_ENABLE, &app_write_REG_START_CAMERAS, &app_write_REG_STOP_CAMERAS, - &app_write_REG_EN_SERVOS, - &app_write_REG_DIS_SERVOS, - &app_write_REG_EN_ENCODERS, - &app_write_REG_CONF_ENCODERS, + &app_write_REG_ENABLE_SERVOS, + &app_write_REG_DISABLE_SERVOS, + &app_write_REG_ENABLE_ENCODERS, + &app_write_REG_ENCODER_MODE, &app_write_REG_RESERVED2, &app_write_REG_RESERVED3, &app_write_REG_RESERVED4, @@ -175,23 +175,23 @@ bool (*app_func_wr_pointer[])(void*) = { &app_write_REG_RESERVED7, &app_write_REG_RESERVED8, &app_write_REG_RESERVED9, - &app_write_REG_CAM_OUT0_FRAME_ACQUIRED, - &app_write_REG_CAM_OUT0_FREQ, - &app_write_REG_CAM_OUT1_FRAME_ACQUIRED, - &app_write_REG_CAM_OUT1_FREQ, + &app_write_REG_CAMERA0_FRAME, + &app_write_REG_CAMERA0_FREQUENCY, + &app_write_REG_CAMERA1_FRAME, + &app_write_REG_CAMERA1_FREQUENCY, &app_write_REG_RESERVED10, &app_write_REG_RESERVED11, &app_write_REG_RESERVED12, &app_write_REG_RESERVED13, - &app_write_REG_MOTOR_OUT2_PERIOD, - &app_write_REG_MOTOR_OUT2_PULSE, - &app_write_REG_MOTOR_OUT3_PERIOD, - &app_write_REG_MOTOR_OUT3_PULSE, + &app_write_REG_SERVO_MOTOR2_PERIOD, + &app_write_REG_SERVO_MOTOR2_PULSE, + &app_write_REG_SERVO_MOTOR3_PERIOD, + &app_write_REG_SERVO_MOTOR3_PULSE, &app_write_REG_RESERVED14, &app_write_REG_RESERVED15, &app_write_REG_RESERVED16, &app_write_REG_RESERVED17, - &app_write_REG_ENCODERS_RESET, + &app_write_REG_ENCODER_RESET, &app_write_REG_RESERVED18, &app_write_REG_ENABLE_SERIAL_TIMESTAMP, &app_write_REG_MIMIC_PORT0_IR, @@ -205,22 +205,20 @@ bool (*app_func_wr_pointer[])(void*) = { &app_write_REG_MIMIC_PORT2_VALVE, &app_write_REG_RESERVED23, &app_write_REG_RESERVED24, - &app_write_REG_POKE_INPUT_FILTER_MS + &app_write_REG_POKE_INPUT_FILTER }; - /************************************************************************/ -/* REG_PORTS_IN */ +/* REG_DIGITAL_INPUT_STATE */ /************************************************************************/ -void app_read_REG_PORT_DIS(void) +void app_read_REG_DIGITAL_INPUT_STATE(void) { - app_regs.REG_PORT_DIS = (read_POKE0_IR) ? B_DI0 : 0; - app_regs.REG_PORT_DIS |= (read_POKE1_IR) ? B_DI1 : 0; - app_regs.REG_PORT_DIS |= (read_POKE2_IR) ? B_DI2 : 0; - app_regs.REG_PORT_DIS |= (read_DI3) ? B_DI3 : 0; + app_regs.REG_DIGITAL_INPUT_STATE = (read_POKE0_IR) ? B_DI_PORT0 : 0; + app_regs.REG_DIGITAL_INPUT_STATE |= (read_POKE1_IR) ? B_DI_PORT1 : 0; + app_regs.REG_DIGITAL_INPUT_STATE |= (read_POKE2_IR) ? B_DI_PORT2 : 0; + app_regs.REG_DIGITAL_INPUT_STATE |= (read_DI3) ? B_DI3 : 0; } -bool app_write_REG_PORT_DIS(void *a) { return false; } - +bool app_write_REG_DIGITAL_INPUT_STATE(void *a) { return false; } /************************************************************************/ /* REG_RESERVED0 */ @@ -235,29 +233,29 @@ bool app_write_REG_RESERVED0(void *a) /************************************************************************/ -/* REG_OUTPUTS_SET */ +/* REG_OUTPUT_SET */ /************************************************************************/ bool rgb0_on = false; bool rgb1_on = false; -#define start_POKE0_LED do {set_POKE0_LED; if (app_regs.REG_OUTPUT_PULSE_EN & B_PORT0_DO) pulse_countdown.poke0_led = app_regs.REG_PULSE_PORT0_DO + 1; } while(0) -#define start_POKE1_LED do {set_POKE1_LED; if (app_regs.REG_OUTPUT_PULSE_EN & B_PORT1_DO) pulse_countdown.poke1_led = app_regs.REG_PULSE_PORT1_DO + 1; } while(0) -#define start_POKE2_LED do {set_POKE2_LED; if (app_regs.REG_OUTPUT_PULSE_EN & B_PORT2_DO) pulse_countdown.poke2_led = app_regs.REG_PULSE_PORT2_DO + 1; } while(0) +#define start_POKE0_LED do {set_POKE0_LED; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_DO_PORT0) pulse_countdown.poke0_led = app_regs.REG_PULSE_DO_PORT0 + 1; } while(0) +#define start_POKE1_LED do {set_POKE1_LED; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_DO_PORT1) pulse_countdown.poke1_led = app_regs.REG_PULSE_DO_PORT1 + 1; } while(0) +#define start_POKE2_LED do {set_POKE2_LED; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_DO_PORT2) pulse_countdown.poke2_led = app_regs.REG_PULSE_DO_PORT2 + 1; } while(0) -#define start_POKE0_VALVE do {set_POKE0_VALVE; if (app_regs.REG_OUTPUT_PULSE_EN & B_PORT0_12V) pulse_countdown.poke0_valve = app_regs.REG_PULSE_PORT0_12V + 1; } while(0) -#define start_POKE1_VALVE do {set_POKE1_VALVE; if (app_regs.REG_OUTPUT_PULSE_EN & B_PORT1_12V) pulse_countdown.poke1_valve = app_regs.REG_PULSE_PORT1_12V + 1; } while(0) -#define start_POKE2_VALVE do {set_POKE2_VALVE; if (app_regs.REG_OUTPUT_PULSE_EN & B_PORT2_12V) pulse_countdown.poke2_valve = app_regs.REG_PULSE_PORT2_12V + 1; } while(0) +#define start_POKE0_VALVE do {set_POKE0_VALVE; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_SUPPLY_PORT0) pulse_countdown.poke0_valve = app_regs.REG_PULSE_SUPPLY_PORT0 + 1; } while(0) +#define start_POKE1_VALVE do {set_POKE1_VALVE; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_SUPPLY_PORT1) pulse_countdown.poke1_valve = app_regs.REG_PULSE_SUPPLY_PORT1 + 1; } while(0) +#define start_POKE2_VALVE do {set_POKE2_VALVE; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_SUPPLY_PORT2) pulse_countdown.poke2_valve = app_regs.REG_PULSE_SUPPLY_PORT2 + 1; } while(0) -#define start_LED0 do {set_LED0; if (app_regs.REG_OUTPUT_PULSE_EN & B_LED0) pulse_countdown.led0 = app_regs.REG_PULSE_LED0 + 1; } while(0) -#define start_LED1 do {set_LED1; if (app_regs.REG_OUTPUT_PULSE_EN & B_LED1) pulse_countdown.led1 = app_regs.REG_PULSE_LED1 + 1; } while(0) +#define start_LED0 do {set_LED0; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_LED0) pulse_countdown.led0 = app_regs.REG_PULSE_LED0 + 1; } while(0) +#define start_LED1 do {set_LED1; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_LED1) pulse_countdown.led1 = app_regs.REG_PULSE_LED1 + 1; } while(0) -#define start_RGB0 do {rgb0_on = true; if (app_regs.REG_OUTPUT_PULSE_EN & B_RGB0) pulse_countdown.rgb0 = app_regs.REG_PULSE_RGB0 + 1; } while(0) -#define start_RGB1 do {rgb1_on = true; if (app_regs.REG_OUTPUT_PULSE_EN & B_RGB1) pulse_countdown.rgb1 = app_regs.REG_PULSE_RGB1 + 1; } while(0) +#define start_RGB0 do {rgb0_on = true; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_RGB0) pulse_countdown.rgb0 = app_regs.REG_PULSE_RGB0 + 1; } while(0) +#define start_RGB1 do {rgb1_on = true; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_RGB1) pulse_countdown.rgb1 = app_regs.REG_PULSE_RGB1 + 1; } while(0) -#define start_DO0 do {set_DO0; if (app_regs.REG_OUTPUT_PULSE_EN & B_DO0) pulse_countdown.do0 = app_regs.REG_PULSE_DO0 + 1; } while(0) -#define start_DO1 do {set_DO1; if (app_regs.REG_OUTPUT_PULSE_EN & B_DO1) pulse_countdown.do1 = app_regs.REG_PULSE_DO1 + 1; } while(0) -#define start_DO2 do {set_DO2; if (app_regs.REG_OUTPUT_PULSE_EN & B_DO2) pulse_countdown.do2 = app_regs.REG_PULSE_DO2 + 1; } while(0) -#define start_DO3 do {set_DO3; if (app_regs.REG_OUTPUT_PULSE_EN & B_DO3) pulse_countdown.do3 = app_regs.REG_PULSE_DO3 + 1; } while(0) +#define start_DO0 do {set_DO0; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_DO0) pulse_countdown.do0 = app_regs.REG_PULSE_DO0 + 1; } while(0) +#define start_DO1 do {set_DO1; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_DO1) pulse_countdown.do1 = app_regs.REG_PULSE_DO1 + 1; } while(0) +#define start_DO2 do {set_DO2; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_DO2) pulse_countdown.do2 = app_regs.REG_PULSE_DO2 + 1; } while(0) +#define start_DO3 do {set_DO3; if (app_regs.REG_OUTPUT_PULSE_ENABLE & B_DO3) pulse_countdown.do3 = app_regs.REG_PULSE_DO3 + 1; } while(0) void handle_Rgbs(bool use_rgb0, bool use_rgb1) { @@ -295,18 +293,18 @@ void handle_Rgbs(bool use_rgb0, bool use_rgb1) PMIC_CTRL = PMIC_RREN_bm | PMIC_LOLVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_HILVLEN_bm; } -void app_read_REG_OUTPUTS_SET(void) {} -bool app_write_REG_OUTPUTS_SET(void *a) +void app_read_REG_OUTPUT_SET(void) {} +bool app_write_REG_OUTPUT_SET(void *a) { uint16_t reg = *((uint16_t*)a); - if (reg & B_PORT0_DO) start_POKE0_LED; - if (reg & B_PORT1_DO) start_POKE1_LED; - if (reg & B_PORT2_DO) start_POKE2_LED; + if (reg & B_DO_PORT0) start_POKE0_LED; + if (reg & B_DO_PORT1) start_POKE1_LED; + if (reg & B_DO_PORT2) start_POKE2_LED; - if (reg & B_PORT0_12V) start_POKE0_VALVE; - if (reg & B_PORT1_12V) start_POKE1_VALVE; - if (reg & B_PORT2_12V) start_POKE2_VALVE; + if (reg & B_SUPPLY_PORT0) start_POKE0_VALVE; + if (reg & B_SUPPLY_PORT1) start_POKE1_VALVE; + if (reg & B_SUPPLY_PORT2) start_POKE2_VALVE; if (reg & B_LED0) start_LED0; if (reg & B_LED1) start_LED1; @@ -323,28 +321,28 @@ bool app_write_REG_OUTPUTS_SET(void *a) if (reg & B_DO2) start_DO2; if (reg & B_DO3) start_DO3; - app_regs.REG_OUTPUTS_OUT |= reg; - app_regs.REG_OUTPUTS_SET = reg; + app_regs.REG_OUTPUT_STATE |= reg; + app_regs.REG_OUTPUT_SET = reg; return true; } /************************************************************************/ -/* REG_OUTPUTS_CLEAR */ +/* REG_OUTPUT_CLEAR */ /************************************************************************/ -void app_read_REG_OUTPUTS_CLEAR(void) {} -bool app_write_REG_OUTPUTS_CLEAR(void *a) +void app_read_REG_OUTPUT_CLEAR(void) {} +bool app_write_REG_OUTPUT_CLEAR(void *a) { uint16_t reg = *((uint16_t*)a); - if (reg & B_PORT0_DO) clr_POKE0_LED; - if (reg & B_PORT1_DO) clr_POKE1_LED; - if (reg & B_PORT2_DO) clr_POKE2_LED; + if (reg & B_DO_PORT0) clr_POKE0_LED; + if (reg & B_DO_PORT1) clr_POKE1_LED; + if (reg & B_DO_PORT2) clr_POKE2_LED; - if (reg & B_PORT0_12V) clr_POKE0_VALVE; - if (reg & B_PORT1_12V) clr_POKE1_VALVE; - if (reg & B_PORT2_12V) clr_POKE2_VALVE; + if (reg & B_SUPPLY_PORT0) clr_POKE0_VALVE; + if (reg & B_SUPPLY_PORT1) clr_POKE1_VALVE; + if (reg & B_SUPPLY_PORT2) clr_POKE2_VALVE; if (reg & B_LED0) clr_LED0; if (reg & B_LED1) clr_LED1; @@ -361,28 +359,28 @@ bool app_write_REG_OUTPUTS_CLEAR(void *a) if (reg & B_DO2) clr_DO2; if (reg & B_DO3) clr_DO3; - app_regs.REG_OUTPUTS_OUT &= ~reg; - app_regs.REG_OUTPUTS_CLEAR = reg; + app_regs.REG_OUTPUT_STATE &= ~reg; + app_regs.REG_OUTPUT_CLEAR = reg; return true; } /************************************************************************/ -/* REG_OUTPUTS_TOGGLE */ +/* REG_OUTPUT_TOGGLE */ /************************************************************************/ -void app_read_REG_OUTPUTS_TOGGLE(void) {} -bool app_write_REG_OUTPUTS_TOGGLE(void *a) +void app_read_REG_OUTPUT_TOGGLE(void) {} +bool app_write_REG_OUTPUT_TOGGLE(void *a) { uint16_t reg = *((uint16_t*)a); - if (reg & B_PORT0_DO) { if (read_POKE0_LED) tgl_POKE0_LED; else start_POKE0_LED;} - if (reg & B_PORT1_DO) { if (read_POKE1_LED) tgl_POKE1_LED; else start_POKE1_LED;} - if (reg & B_PORT2_DO) { if (read_POKE2_LED) tgl_POKE2_LED; else start_POKE2_LED;} + if (reg & B_DO_PORT0) { if (read_POKE0_LED) tgl_POKE0_LED; else start_POKE0_LED;} + if (reg & B_DO_PORT1) { if (read_POKE1_LED) tgl_POKE1_LED; else start_POKE1_LED;} + if (reg & B_DO_PORT2) { if (read_POKE2_LED) tgl_POKE2_LED; else start_POKE2_LED;} - if (reg & B_PORT0_12V) { if (read_POKE0_VALVE) tgl_POKE0_VALVE; else start_POKE0_VALVE;} - if (reg & B_PORT1_12V) { if (read_POKE1_VALVE) tgl_POKE1_VALVE; else start_POKE1_VALVE;} - if (reg & B_PORT2_12V) { if (read_POKE2_VALVE) tgl_POKE2_VALVE; else start_POKE2_VALVE;} + if (reg & B_SUPPLY_PORT0) { if (read_POKE0_VALVE) tgl_POKE0_VALVE; else start_POKE0_VALVE;} + if (reg & B_SUPPLY_PORT1) { if (read_POKE1_VALVE) tgl_POKE1_VALVE; else start_POKE1_VALVE;} + if (reg & B_SUPPLY_PORT2) { if (read_POKE2_VALVE) tgl_POKE2_VALVE; else start_POKE2_VALVE;} if (reg & B_LED0) { if (!read_LED0) tgl_LED0; else start_LED0;} @@ -412,39 +410,39 @@ bool app_write_REG_OUTPUTS_TOGGLE(void *a) if (reg & B_DO2) { if (read_DO2) tgl_DO2; else start_DO2;} if (reg & B_DO3) { if (read_DO3) tgl_DO3; else start_DO3;} - app_regs.REG_OUTPUTS_OUT ^= reg; - app_regs.REG_OUTPUTS_TOGGLE = reg; + app_regs.REG_OUTPUT_STATE ^= reg; + app_regs.REG_OUTPUT_TOGGLE = reg; return true; } /************************************************************************/ -/* REG_OUTPUTS_OUT */ +/* REG_OUTPUT_STATE */ /************************************************************************/ -void app_read_REG_OUTPUTS_OUT(void) +void app_read_REG_OUTPUT_STATE(void) { - app_regs.REG_OUTPUTS_OUT = (read_POKE0_LED) ? B_PORT0_DO : 0; - app_regs.REG_OUTPUTS_OUT |= (read_POKE1_LED) ? B_PORT1_DO : 0; - app_regs.REG_OUTPUTS_OUT |= (read_POKE2_LED) ? B_PORT2_DO : 0; + app_regs.REG_OUTPUT_STATE = (read_POKE0_LED) ? B_DO_PORT0 : 0; + app_regs.REG_OUTPUT_STATE |= (read_POKE1_LED) ? B_DO_PORT1 : 0; + app_regs.REG_OUTPUT_STATE |= (read_POKE2_LED) ? B_DO_PORT2 : 0; - app_regs.REG_OUTPUTS_OUT |= (read_POKE0_VALVE) ? B_PORT0_12V: 0; - app_regs.REG_OUTPUTS_OUT |= (read_POKE1_VALVE) ? B_PORT1_12V: 0; - app_regs.REG_OUTPUTS_OUT |= (read_POKE2_VALVE) ? B_PORT2_12V: 0; + app_regs.REG_OUTPUT_STATE |= (read_POKE0_VALVE) ? B_SUPPLY_PORT0: 0; + app_regs.REG_OUTPUT_STATE |= (read_POKE1_VALVE) ? B_SUPPLY_PORT1: 0; + app_regs.REG_OUTPUT_STATE |= (read_POKE2_VALVE) ? B_SUPPLY_PORT2: 0; - app_regs.REG_OUTPUTS_OUT |= (read_LED0) ? 0 : B_LED0; - app_regs.REG_OUTPUTS_OUT |= (read_LED1) ? 0 : B_LED1; + app_regs.REG_OUTPUT_STATE |= (read_LED0) ? 0 : B_LED0; + app_regs.REG_OUTPUT_STATE |= (read_LED1) ? 0 : B_LED1; - app_regs.REG_OUTPUTS_OUT |= (rgb0_on) ? B_RGB0 : 0; - app_regs.REG_OUTPUTS_OUT |= (rgb1_on) ? B_RGB1 : 0; + app_regs.REG_OUTPUT_STATE |= (rgb0_on) ? B_RGB0 : 0; + app_regs.REG_OUTPUT_STATE |= (rgb1_on) ? B_RGB1 : 0; - app_regs.REG_OUTPUTS_OUT |= (read_DO0) ? B_DO0 : 0; - app_regs.REG_OUTPUTS_OUT |= (read_DO1) ? B_DO1 : 0; - app_regs.REG_OUTPUTS_OUT |= (read_DO2) ? B_DO2 : 0; - app_regs.REG_OUTPUTS_OUT |= (read_DO3) ? B_DO3 : 0; + app_regs.REG_OUTPUT_STATE |= (read_DO0) ? B_DO0 : 0; + app_regs.REG_OUTPUT_STATE |= (read_DO1) ? B_DO1 : 0; + app_regs.REG_OUTPUT_STATE |= (read_DO2) ? B_DO2 : 0; + app_regs.REG_OUTPUT_STATE |= (read_DO3) ? B_DO3 : 0; } -bool app_write_REG_OUTPUTS_OUT(void *a) +bool app_write_REG_OUTPUT_STATE(void *a) { uint16_t reg = *((uint16_t*)a); @@ -452,13 +450,13 @@ bool app_write_REG_OUTPUTS_OUT(void *a) prev_rgb0_on = rgb0_on; prev_rgb1_on = rgb1_on; - if (reg & B_PORT0_DO) start_POKE0_LED; else clr_POKE0_LED; - if (reg & B_PORT1_DO) start_POKE1_LED; else clr_POKE1_LED; - if (reg & B_PORT2_DO) start_POKE2_LED; else clr_POKE2_LED; + if (reg & B_DO_PORT0) start_POKE0_LED; else clr_POKE0_LED; + if (reg & B_DO_PORT1) start_POKE1_LED; else clr_POKE1_LED; + if (reg & B_DO_PORT2) start_POKE2_LED; else clr_POKE2_LED; - if (reg & B_PORT0_12V) start_POKE0_VALVE; else clr_POKE0_VALVE; - if (reg & B_PORT1_12V) start_POKE1_VALVE; else clr_POKE1_VALVE; - if (reg & B_PORT2_12V) start_POKE2_VALVE; else clr_POKE2_VALVE; + if (reg & B_SUPPLY_PORT0) start_POKE0_VALVE; else clr_POKE0_VALVE; + if (reg & B_SUPPLY_PORT1) start_POKE1_VALVE; else clr_POKE1_VALVE; + if (reg & B_SUPPLY_PORT2) start_POKE2_VALVE; else clr_POKE2_VALVE; if (reg & B_LED0) start_LED0; else clr_LED0; if (reg & B_LED1) start_LED1; else clr_LED1; @@ -476,134 +474,122 @@ bool app_write_REG_OUTPUTS_OUT(void *a) if (reg & B_DO2) start_DO2; else clr_DO2; if (reg & B_DO3) start_DO3; else clr_DO3; - app_regs.REG_OUTPUTS_OUT = reg; + app_regs.REG_OUTPUT_STATE = reg; return true; } /************************************************************************/ -/* REG_PORT_DIOS_SET */ +/* REG_PORT_DIO_SET */ /************************************************************************/ -void app_read_REG_PORT_DIOS_SET(void) +void app_read_REG_PORT_DIO_SET(void) { - //app_regs.REG_PORT_DIOS_SET = 0; + //app_regs.REG_PORT_DIO_SET = 0; } -bool app_write_REG_PORT_DIOS_SET(void *a) +bool app_write_REG_PORT_DIO_SET(void *a) { uint8_t reg = *((uint8_t*)a); - app_regs.REG_PORT_DIOS_SET = reg; + app_regs.REG_PORT_DIO_SET = reg; return true; } - /************************************************************************/ -/* REG_PORT_DIOS_CLEAR */ +/* REG_PORT_DIO_CLEAR */ /************************************************************************/ -void app_read_REG_PORT_DIOS_CLEAR(void) +void app_read_REG_PORT_DIO_CLEAR(void) { - //app_regs.REG_PORT_DIOS_CLEAR = 0; + //app_regs.REG_PORT_DIO_CLEAR = 0; } -bool app_write_REG_PORT_DIOS_CLEAR(void *a) +bool app_write_REG_PORT_DIO_CLEAR(void *a) { uint8_t reg = *((uint8_t*)a); - app_regs.REG_PORT_DIOS_CLEAR = reg; + app_regs.REG_PORT_DIO_CLEAR = reg; return true; } - /************************************************************************/ -/* REG_PORT_DIOS_TOGGLE */ +/* REG_PORT_DIO_TOGGLE */ /************************************************************************/ -void app_read_REG_PORT_DIOS_TOGGLE(void) +void app_read_REG_PORT_DIO_TOGGLE(void) { - //app_regs.REG_PORT_DIOS_TOGGLE = 0; + //app_regs.REG_PORT_DIO_TOGGLE = 0; } -bool app_write_REG_PORT_DIOS_TOGGLE(void *a) +bool app_write_REG_PORT_DIO_TOGGLE(void *a) { uint8_t reg = *((uint8_t*)a); - app_regs.REG_PORT_DIOS_TOGGLE = reg; + app_regs.REG_PORT_DIO_TOGGLE = reg; return true; } - /************************************************************************/ -/* REG_PORT_DIOS_OUT */ +/* REG_PORT_DIO_STATE */ /************************************************************************/ -void app_read_REG_PORT_DIOS_OUT(void) +void app_read_REG_PORT_DIO_STATE(void) { - //app_regs.REG_PORT_DIOS_OUT = 0; + //app_regs.REG_PORT_DIO_STATE = 0; } -bool app_write_REG_PORT_DIOS_OUT(void *a) +bool app_write_REG_PORT_DIO_STATE(void *a) { uint8_t reg = *((uint8_t*)a); - app_regs.REG_PORT_DIOS_OUT = reg; + app_regs.REG_PORT_DIO_STATE = reg; return true; } - /************************************************************************/ -/* REG_PORT_DIOS_CONF */ +/* REG_PORT_DIO_DIRECTION */ /************************************************************************/ -void app_read_REG_PORT_DIOS_CONF(void) +void app_read_REG_PORT_DIO_DIRECTION(void) { - //app_regs.REG_PORT_DIOS_CONF = 0; + //app_regs.REG_PORT_DIO_DIRECTION = 0; } -bool app_write_REG_PORT_DIOS_CONF(void *a) +bool app_write_REG_PORT_DIO_DIRECTION(void *a) { uint8_t reg = *((uint8_t*)a); - app_regs.REG_PORT_DIOS_CONF = reg; + app_regs.REG_PORT_DIO_DIRECTION = reg; return true; } - /************************************************************************/ -/* REG_PORT_DIOS_IN */ +/* REG_PORT_DIO_STATE_EVENT */ /************************************************************************/ -void app_read_REG_PORT_DIOS_IN(void) +void app_read_REG_PORT_DIO_STATE_EVENT(void) { - //app_regs.REG_PORT_DIOS_IN = 0; + //app_regs.REG_PORT_DIO_STATE_EVENT = 0; - app_regs.REG_PORT_DIOS_IN = (read_POKE0_IO) ? B_DIO0 : 0; - app_regs.REG_PORT_DIOS_IN |= (read_POKE1_IO) ? B_DIO1 : 0; - app_regs.REG_PORT_DIOS_IN |= (read_POKE2_IO) ? B_DIO2 : 0; + app_regs.REG_PORT_DIO_STATE_EVENT = (read_POKE0_IO) ? B_DIO0 : 0; + app_regs.REG_PORT_DIO_STATE_EVENT |= (read_POKE1_IO) ? B_DIO1 : 0; + app_regs.REG_PORT_DIO_STATE_EVENT |= (read_POKE2_IO) ? B_DIO2 : 0; } -bool app_write_REG_PORT_DIOS_IN(void *a) -{ - uint8_t reg = *((uint8_t*)a); - - app_regs.REG_PORT_DIOS_IN = reg; - return true; -} - +bool app_write_REG_PORT_DIO_STATE_EVENT(void *a) { return false; } /************************************************************************/ -/* REG_DATA */ +/* REG_ANALOG_DATA */ /************************************************************************/ -// This register is an array with 2 positions -void app_read_REG_DATA(void) {} // The register is always updated -bool app_write_REG_DATA(void *a) +// This register is an array with 3 positions +void app_read_REG_ANALOG_DATA(void) {} // The register is always updated +bool app_write_REG_ANALOG_DATA(void *a) { uint16_t *reg = ((uint16_t*)a); - app_regs.REG_DATA[1] = reg[1]; // Write only to encoder counter + app_regs.REG_ANALOG_DATA[1] = reg[1]; // Write only to encoder counter if (_states_.quad_counter.port2) { @@ -615,98 +601,98 @@ bool app_write_REG_DATA(void *a) /************************************************************************/ -/* REG_MODE_POKE0_LED */ +/* REG_OUTPUT_PULSE_ENABLE */ /************************************************************************/ -void app_read_REG_OUTPUT_PULSE_EN(void) {} -bool app_write_REG_OUTPUT_PULSE_EN(void *a) +void app_read_REG_OUTPUT_PULSE_ENABLE(void) {} +bool app_write_REG_OUTPUT_PULSE_ENABLE(void *a) { uint16_t reg = *((uint16_t*)a); - app_regs.REG_OUTPUT_PULSE_EN = reg; + app_regs.REG_OUTPUT_PULSE_ENABLE = reg; return true; } /************************************************************************/ -/* REG_PULSE_PORT0_DO */ +/* REG_PULSE_DO_PORT0 */ /************************************************************************/ -void app_read_REG_PULSE_PORT0_DO(void) {} -bool app_write_REG_PULSE_PORT0_DO(void *a) +void app_read_REG_PULSE_DO_PORT0(void) {} +bool app_write_REG_PULSE_DO_PORT0(void *a) { if (*((uint16_t*)a) < 1) return false; - app_regs.REG_PULSE_PORT0_DO = *((uint16_t*)a); + app_regs.REG_PULSE_DO_PORT0 = *((uint16_t*)a); return true; } /************************************************************************/ -/* REG_PULSE_PORT1_DO */ +/* REG_PULSE_DO_PORT1 */ /************************************************************************/ -void app_read_REG_PULSE_PORT1_DO(void) {} -bool app_write_REG_PULSE_PORT1_DO(void *a) +void app_read_REG_PULSE_DO_PORT1(void) {} +bool app_write_REG_PULSE_DO_PORT1(void *a) { if (*((uint16_t*)a) < 1) return false; - app_regs.REG_PULSE_PORT1_DO = *((uint16_t*)a); + app_regs.REG_PULSE_DO_PORT1 = *((uint16_t*)a); return true; } /************************************************************************/ -/* REG_PULSE_PORT2_DO */ +/* REG_PULSE_DO_PORT2 */ /************************************************************************/ -void app_read_REG_PULSE_PORT2_DO(void) {} -bool app_write_REG_PULSE_PORT2_DO(void *a) +void app_read_REG_PULSE_DO_PORT2(void) {} +bool app_write_REG_PULSE_DO_PORT2(void *a) { if (*((uint16_t*)a) < 1) return false; - app_regs.REG_PULSE_PORT2_DO = *((uint16_t*)a); + app_regs.REG_PULSE_DO_PORT2 = *((uint16_t*)a); return true; } /************************************************************************/ -/* REG_PULSE_PORT0_12V */ +/* REG_PULSE_SUPPLY_PORT0 */ /************************************************************************/ -void app_read_REG_PULSE_PORT0_12V(void) {} -bool app_write_REG_PULSE_PORT0_12V(void *a) +void app_read_REG_PULSE_SUPPLY_PORT0(void) {} +bool app_write_REG_PULSE_SUPPLY_PORT0(void *a) { if (*((uint16_t*)a) < 1) return false; - app_regs.REG_PULSE_PORT0_12V = *((uint16_t*)a); + app_regs.REG_PULSE_SUPPLY_PORT0 = *((uint16_t*)a); return true; } /************************************************************************/ -/* REG_PULSE_PORT1_12V */ +/* REG_PULSE_SUPPLY_PORT1 */ /************************************************************************/ -void app_read_REG_PULSE_PORT1_12V(void) {} -bool app_write_REG_PULSE_PORT1_12V(void *a) +void app_read_REG_PULSE_SUPPLY_PORT1(void) {} +bool app_write_REG_PULSE_SUPPLY_PORT1(void *a) { if (*((uint16_t*)a) < 1) return false; - app_regs.REG_PULSE_PORT1_12V = *((uint16_t*)a); + app_regs.REG_PULSE_SUPPLY_PORT1 = *((uint16_t*)a); return true; } /************************************************************************/ -/* REG_PULSE_PORT2_12V */ +/* REG_PULSE_SUPPLY_PORT2 */ /************************************************************************/ -void app_read_REG_PULSE_PORT2_12V(void) {} -bool app_write_REG_PULSE_PORT2_12V(void *a) +void app_read_REG_PULSE_SUPPLY_PORT2(void) {} +bool app_write_REG_PULSE_SUPPLY_PORT2(void *a) { if (*((uint16_t*)a) < 1) return false; - app_regs.REG_PULSE_PORT2_12V = *((uint16_t*)a); + app_regs.REG_PULSE_SUPPLY_PORT2 = *((uint16_t*)a); return true; } @@ -824,10 +810,10 @@ bool app_write_REG_PULSE_DO3(void *a) /************************************************************************/ -/* REG_FREQ_DO0 */ +/* REG_PWM_FREQUENCY_DO0 */ /************************************************************************/ -void app_read_REG_FREQ_DO0(void) {} -bool app_write_REG_FREQ_DO0(void *a) +void app_read_REG_PWM_FREQUENCY_DO0(void) {} +bool app_write_REG_PWM_FREQUENCY_DO0(void *a) { uint16_t reg = *((uint16_t*)a); @@ -835,19 +821,19 @@ bool app_write_REG_FREQ_DO0(void *a) return false; calculate_timer_16bits(32000000, reg, &timer_conf.prescaler_do0, &timer_conf.target_do0); - timer_conf.dcycle_do0 = app_regs.REG_DCYCLE_DO0/100.0 * timer_conf.target_do0 + 0.5; + timer_conf.dcycle_do0 = app_regs.REG_PWM_DUTY_CYCLE_DO0/100.0 * timer_conf.target_do0 + 0.5; is_new_timer_conf.pwm_do0 = true; - app_regs.REG_FREQ_DO0 = reg; + app_regs.REG_PWM_FREQUENCY_DO0 = reg; return true; } /************************************************************************/ -/* REG_FREQ_DO1 */ +/* REG_PWM_FREQUENCY_DO1 */ /************************************************************************/ -void app_read_REG_FREQ_DO1(void) {} -bool app_write_REG_FREQ_DO1(void *a) +void app_read_REG_PWM_FREQUENCY_DO1(void) {} +bool app_write_REG_PWM_FREQUENCY_DO1(void *a) { uint16_t reg = *((uint16_t*)a); @@ -855,24 +841,24 @@ bool app_write_REG_FREQ_DO1(void *a) return false; calculate_timer_16bits(32000000, reg, &timer_conf.prescaler_do1, &timer_conf.target_do1); - timer_conf.dcycle_do1 = app_regs.REG_DCYCLE_DO1/100.0 * timer_conf.target_do1 + 0.5; + timer_conf.dcycle_do1 = app_regs.REG_PWM_DUTY_CYCLE_DO1/100.0 * timer_conf.target_do1 + 0.5; is_new_timer_conf.pwm_do1 = true; - app_regs.REG_FREQ_DO1 = reg; + app_regs.REG_PWM_FREQUENCY_DO1 = reg; return true; } /************************************************************************/ -/* REG_FREQ_DO2 */ +/* REG_PWM_FREQUENCY_DO2 */ /************************************************************************/ -void app_read_REG_FREQ_DO2(void) +void app_read_REG_PWM_FREQUENCY_DO2(void) { - //app_regs.REG_FREQ_DO2 = 0; + //app_regs.REG_PWM_FREQUENCY_DO2 = 0; } -bool app_write_REG_FREQ_DO2(void *a) +bool app_write_REG_PWM_FREQUENCY_DO2(void *a) { uint16_t reg = *((uint16_t*)a); @@ -880,24 +866,24 @@ bool app_write_REG_FREQ_DO2(void *a) return false; calculate_timer_16bits(32000000, reg, &timer_conf.prescaler_do2, &timer_conf.target_do2); - timer_conf.dcycle_do2 = app_regs.REG_DCYCLE_DO2/100.0 * timer_conf.target_do2 + 0.5; + timer_conf.dcycle_do2 = app_regs.REG_PWM_DUTY_CYCLE_DO2/100.0 * timer_conf.target_do2 + 0.5; is_new_timer_conf.pwm_do2 = true; - app_regs.REG_FREQ_DO2 = reg; + app_regs.REG_PWM_FREQUENCY_DO2 = reg; return true; } /************************************************************************/ -/* REG_FREQ_DO3 */ +/* REG_PWM_FREQUENCY_DO3 */ /************************************************************************/ -void app_read_REG_FREQ_DO3(void) +void app_read_REG_PWM_FREQUENCY_DO3(void) { - //app_regs.REG_FREQ_DO3 = 0; + //app_regs.REG_PWM_FREQUENCY_DO3 = 0; } -bool app_write_REG_FREQ_DO3(void *a) +bool app_write_REG_PWM_FREQUENCY_DO3(void *a) { uint16_t reg = *((uint16_t*)a); @@ -905,105 +891,105 @@ bool app_write_REG_FREQ_DO3(void *a) return false; calculate_timer_16bits(32000000, reg, &timer_conf.prescaler_do3, &timer_conf.target_do3); - timer_conf.dcycle_do3 = app_regs.REG_DCYCLE_DO3/100.0 * timer_conf.target_do3 + 0.5; + timer_conf.dcycle_do3 = app_regs.REG_PWM_DUTY_CYCLE_DO3/100.0 * timer_conf.target_do3 + 0.5; is_new_timer_conf.pwm_do3 = true; - app_regs.REG_FREQ_DO3 = reg; + app_regs.REG_PWM_FREQUENCY_DO3 = reg; return true; } /************************************************************************/ -/* REG_DCYCLE_DO0 */ +/* REG_PWM_DUTY_CYCLE_DO0 */ /************************************************************************/ -void app_read_REG_DCYCLE_DO0(void) {} -bool app_write_REG_DCYCLE_DO0(void *a) +void app_read_REG_PWM_DUTY_CYCLE_DO0(void) {} +bool app_write_REG_PWM_DUTY_CYCLE_DO0(void *a) { uint8_t reg = *((uint8_t*)a); if (reg < 1 || reg > 99) return false; - //calculate_timer_16bits(32000000, app_regs.REG_FREQ_DO0, &timer_conf.prescaler_do0, &timer_conf.target_do0); + //calculate_timer_16bits(32000000, app_regs.REG_PWM_FREQUENCY_DO0, &timer_conf.prescaler_do0, &timer_conf.target_do0); timer_conf.dcycle_do0 = reg/100.0 * timer_conf.target_do0 + 0.5; is_new_timer_conf.pwm_do0 = true; - app_regs.REG_DCYCLE_DO0 = reg; + app_regs.REG_PWM_DUTY_CYCLE_DO0 = reg; return true; } /************************************************************************/ -/* REG_DCYCLE_DO1 */ +/* REG_PWM_DUTY_CYCLE_DO1 */ /************************************************************************/ -void app_read_REG_DCYCLE_DO1(void) +void app_read_REG_PWM_DUTY_CYCLE_DO1(void) { - //app_regs.REG_DCYCLE_DO1 = 0; + //app_regs.REG_PWM_DUTY_CYCLE_DO1 = 0; } -bool app_write_REG_DCYCLE_DO1(void *a) +bool app_write_REG_PWM_DUTY_CYCLE_DO1(void *a) { uint8_t reg = *((uint8_t*)a); if (reg < 1 || reg > 99) return false; - //calculate_timer_16bits(32000000, app_regs.REG_FREQ_DO0, &timer_conf.prescaler_do0, &timer_conf.target_do0); + //calculate_timer_16bits(32000000, app_regs.REG_PWM_FREQUENCY_DO0, &timer_conf.prescaler_do0, &timer_conf.target_do0); timer_conf.dcycle_do1 = reg/100.0 * timer_conf.target_do1 + 0.5; is_new_timer_conf.pwm_do1 = true; - app_regs.REG_DCYCLE_DO1 = reg; + app_regs.REG_PWM_DUTY_CYCLE_DO1 = reg; return true; } /************************************************************************/ -/* REG_DCYCLE_DO2 */ +/* REG_PWM_DUTY_CYCLE_DO2 */ /************************************************************************/ -void app_read_REG_DCYCLE_DO2(void) +void app_read_REG_PWM_DUTY_CYCLE_DO2(void) { - //app_regs.REG_DCYCLE_DO2 = 0; + //app_regs.REG_PWM_DUTY_CYCLE_DO2 = 0; } -bool app_write_REG_DCYCLE_DO2(void *a) +bool app_write_REG_PWM_DUTY_CYCLE_DO2(void *a) { uint8_t reg = *((uint8_t*)a); if (reg < 1 || reg > 99) return false; - //calculate_timer_16bits(32000000, app_regs.REG_FREQ_DO0, &timer_conf.prescaler_do0, &timer_conf.target_do0); + //calculate_timer_16bits(32000000, app_regs.REG_PWM_FREQUENCY_DO0, &timer_conf.prescaler_do0, &timer_conf.target_do0); timer_conf.dcycle_do2 = reg/100.0 * timer_conf.target_do2 + 0.5; is_new_timer_conf.pwm_do2 = true; - app_regs.REG_DCYCLE_DO2 = reg; + app_regs.REG_PWM_DUTY_CYCLE_DO2 = reg; return true; } /************************************************************************/ -/* REG_DCYCLE_DO3 */ +/* REG_PWM_DUTY_CYCLE_DO3 */ /************************************************************************/ -void app_read_REG_DCYCLE_DO3(void) +void app_read_REG_PWM_DUTY_CYCLE_DO3(void) { - //app_regs.REG_DCYCLE_DO3 = 0; + //app_regs.REG_PWM_DUTY_CYCLE_DO3 = 0; } -bool app_write_REG_DCYCLE_DO3(void *a) +bool app_write_REG_PWM_DUTY_CYCLE_DO3(void *a) { uint8_t reg = *((uint8_t*)a); if (reg < 1 || reg > 99) return false; - //calculate_timer_16bits(32000000, app_regs.REG_FREQ_DO0, &timer_conf.prescaler_do0, &timer_conf.target_do0); + //calculate_timer_16bits(32000000, app_regs.REG_PWM_FREQUENCY_DO0, &timer_conf.prescaler_do0, &timer_conf.target_do0); timer_conf.dcycle_do3 = reg/100.0 * timer_conf.target_do3 + 0.5; is_new_timer_conf.pwm_do3 = true; - app_regs.REG_DCYCLE_DO3 = reg; + app_regs.REG_PWM_DUTY_CYCLE_DO3 = reg; return true; } @@ -1121,28 +1107,28 @@ bool app_write_REG_PWM_STOP(void *a) /************************************************************************/ -/* REG_RGBS */ +/* REG_RGB_ALL */ /************************************************************************/ // This register is an array with 6 positions -void app_read_REG_RGBS(void) {} -bool app_write_REG_RGBS(void *a) +void app_read_REG_RGB_ALL(void) {} +bool app_write_REG_RGB_ALL(void *a) { uint8_t *reg = ((uint8_t*)a); - app_regs.REG_RGBS[0] = reg[1]; - app_regs.REG_RGBS[1] = reg[0]; - app_regs.REG_RGBS[2] = reg[2]; - app_regs.REG_RGBS[3] = reg[4]; - app_regs.REG_RGBS[4] = reg[3]; - app_regs.REG_RGBS[5] = reg[5]; - - app_regs.REG_RGB0[0] = reg[1]; - app_regs.REG_RGB0[1] = reg[0]; - app_regs.REG_RGB0[2] = reg[2]; + app_regs.REG_RGB_ALL[0] = reg[1]; + app_regs.REG_RGB_ALL[1] = reg[0]; + app_regs.REG_RGB_ALL[2] = reg[2]; + app_regs.REG_RGB_ALL[3] = reg[4]; + app_regs.REG_RGB_ALL[4] = reg[3]; + app_regs.REG_RGB_ALL[5] = reg[5]; + + app_regs.REG_RGB_ALL[0] = reg[1]; + app_regs.REG_RGB_ALL[1] = reg[0]; + app_regs.REG_RGB_ALL[2] = reg[2]; - app_regs.REG_RGB1[0] = reg[4]; - app_regs.REG_RGB1[1] = reg[3]; - app_regs.REG_RGB1[2] = reg[5]; + app_regs.REG_RGB_ALL[0] = reg[4]; + app_regs.REG_RGB_ALL[1] = reg[3]; + app_regs.REG_RGB_ALL[2] = reg[5]; handle_Rgbs(rgb0_on, rgb1_on); @@ -1159,13 +1145,13 @@ bool app_write_REG_RGB0(void *a) { uint8_t *reg = ((uint8_t*)a); - app_regs.REG_RGBS[0] = reg[1]; - app_regs.REG_RGBS[1] = reg[0]; - app_regs.REG_RGBS[2] = reg[2]; + app_regs.REG_RGB_ALL[0] = reg[1]; + app_regs.REG_RGB_ALL[1] = reg[0]; + app_regs.REG_RGB_ALL[2] = reg[2]; - app_regs.REG_RGB0[0] = reg[1]; - app_regs.REG_RGB0[1] = reg[0]; - app_regs.REG_RGB0[2] = reg[2]; + app_regs.REG_RGB_ALL[0] = reg[1]; + app_regs.REG_RGB_ALL[1] = reg[0]; + app_regs.REG_RGB_ALL[2] = reg[2]; handle_Rgbs(rgb0_on, rgb1_on); @@ -1182,13 +1168,13 @@ bool app_write_REG_RGB1(void *a) { uint8_t *reg = ((uint8_t*)a); - app_regs.REG_RGBS[3] = reg[1]; - app_regs.REG_RGBS[4] = reg[0]; - app_regs.REG_RGBS[5] = reg[2]; + app_regs.REG_RGB_ALL[3] = reg[1]; + app_regs.REG_RGB_ALL[4] = reg[0]; + app_regs.REG_RGB_ALL[5] = reg[2]; - app_regs.REG_RGB1[0] = reg[1]; - app_regs.REG_RGB1[1] = reg[0]; - app_regs.REG_RGB1[2] = reg[2]; + app_regs.REG_RGB_ALL[0] = reg[1]; + app_regs.REG_RGB_ALL[1] = reg[0]; + app_regs.REG_RGB_ALL[2] = reg[2]; handle_Rgbs(rgb0_on, rgb1_on); @@ -1293,14 +1279,14 @@ bool app_write_REG_LED1_MAX_CURRENT(void *a) /************************************************************************/ -/* REG_EVNT_ENABLE */ +/* REG_EVENT_ENABLE */ /************************************************************************/ -void app_read_REG_EVNT_ENABLE(void) {} -bool app_write_REG_EVNT_ENABLE(void *a) +void app_read_REG_EVENT_ENABLE(void) {} +bool app_write_REG_EVENT_ENABLE(void *a) { uint8_t reg = *((uint8_t*)a); - app_regs.REG_EVNT_ENABLE = reg; + app_regs.REG_EVENT_ENABLE = reg; return true; } @@ -1338,37 +1324,37 @@ void app_read_REG_START_CAMERAS(void) if(_states_.camera.do0) { - app_regs.REG_START_CAMERAS |= B_EN_CAM_OUT0; + app_regs.REG_START_CAMERAS |= B_CAMERA_OUTPUT0; } if(_states_.camera.do1) { - app_regs.REG_START_CAMERAS |= B_EN_CAM_OUT1; + app_regs.REG_START_CAMERAS |= B_CAMERA_OUTPUT1; } } bool app_write_REG_START_CAMERAS(void *a) { uint8_t reg = *((uint8_t*)a); - if ((reg & B_EN_CAM_OUT0) && !_states_.camera.do0) + if ((reg & B_CAMERA_OUTPUT0) && !_states_.camera.do0) { /* Make sure the output pin is equal to 0 for a while before start triggering the camera */ clr_DO0; _delay_us(16); // Measured, gives around 55us before the the first trigger pulse /* Start the camera */ - start_cameras(&TCF0, app_regs.REG_CAM_OUT0_FREQ); + start_cameras(&TCF0, app_regs.REG_CAMERA0_FREQUENCY); _states_.camera.do0 = true; } - if ((reg & B_EN_CAM_OUT1) && !_states_.camera.do1) + if ((reg & B_CAMERA_OUTPUT1) && !_states_.camera.do1) { /* Make sure the output pin is equal to 0 for a while before start triggering the camera */ clr_DO1; _delay_us(16); // Measured, gives around 55us before the the first trigger pulse /* Start the camera */ - start_cameras(&TCE0, app_regs.REG_CAM_OUT1_FREQ); + start_cameras(&TCE0, app_regs.REG_CAMERA1_FREQUENCY); _states_.camera.do1 = true; } @@ -1388,12 +1374,12 @@ bool app_write_REG_STOP_CAMERAS(void *a) { uint8_t reg = *((uint8_t*)a); - if ((reg & B_EN_CAM_OUT0) && _states_.camera.do0) + if ((reg & B_CAMERA_OUTPUT0) && _states_.camera.do0) { stop_camera_do0 = true; } - if ((reg & B_EN_CAM_OUT1) && _states_.camera.do1) + if ((reg & B_CAMERA_OUTPUT1) && _states_.camera.do1) { stop_camera_do1 = true; } @@ -1404,89 +1390,89 @@ bool app_write_REG_STOP_CAMERAS(void *a) /************************************************************************/ -/* REG_EN_SERVOS */ +/* REG_ENABLE_SERVOS */ /************************************************************************/ -void app_read_REG_EN_SERVOS(void) +void app_read_REG_ENABLE_SERVOS(void) { - app_regs.REG_EN_SERVOS = 0; + app_regs.REG_ENABLE_SERVOS = 0; if (_states_.servo.do2) { - app_regs.REG_EN_SERVOS |= B_EN_SERVO_OUT2; + app_regs.REG_ENABLE_SERVOS |= B_SERVO_OUTPUT2; } if (_states_.servo.do3) { - app_regs.REG_EN_SERVOS |= B_EN_SERVO_OUT3; + app_regs.REG_ENABLE_SERVOS |= B_SERVO_OUTPUT3; } } -bool app_write_REG_EN_SERVOS(void *a) +bool app_write_REG_ENABLE_SERVOS(void *a) { uint8_t reg = *((uint8_t*)a); - if ((reg & B_EN_SERVO_OUT2) && !_states_.servo.do2) + if ((reg & B_SERVO_OUTPUT2) && !_states_.servo.do2) { _states_.servo.do2 = true; - timer_type0_pwm(&TCD0, TIMER_PRESCALER_DIV64, (app_regs.REG_MOTOR_OUT2_PERIOD >> 1), (app_regs.REG_MOTOR_OUT2_PULSE >> 1), INT_LEVEL_OFF, INT_LEVEL_OFF); + timer_type0_pwm(&TCD0, TIMER_PRESCALER_DIV64, (app_regs.REG_SERVO_MOTOR2_PERIOD >> 1), (app_regs.REG_SERVO_MOTOR2_PULSE >> 1), INT_LEVEL_OFF, INT_LEVEL_OFF); } - if ((reg & B_EN_SERVO_OUT3) && !_states_.servo.do3) + if ((reg & B_SERVO_OUTPUT3) && !_states_.servo.do3) { _states_.servo.do3 = true; - timer_type0_pwm(&TCC0, TIMER_PRESCALER_DIV64, (app_regs.REG_MOTOR_OUT3_PERIOD >> 1), (app_regs.REG_MOTOR_OUT3_PULSE >> 1), INT_LEVEL_OFF, INT_LEVEL_OFF); + timer_type0_pwm(&TCC0, TIMER_PRESCALER_DIV64, (app_regs.REG_SERVO_MOTOR3_PERIOD >> 1), (app_regs.REG_SERVO_MOTOR3_PULSE >> 1), INT_LEVEL_OFF, INT_LEVEL_OFF); } - app_regs.REG_EN_SERVOS = reg; + app_regs.REG_ENABLE_SERVOS = reg; return true; } /************************************************************************/ -/* REG_DIS_SERVOS */ +/* REG_DISABLE_SERVOS */ /************************************************************************/ -void app_read_REG_DIS_SERVOS(void) {} -bool app_write_REG_DIS_SERVOS(void *a) +void app_read_REG_DISABLE_SERVOS(void) {} +bool app_write_REG_DISABLE_SERVOS(void *a) { uint8_t reg = *((uint8_t*)a); - if ((reg & B_EN_SERVO_OUT2) && _states_.servo.do2) + if ((reg & B_SERVO_OUTPUT2) && _states_.servo.do2) { _states_.servo.do2 = false; timer_type0_stop(&TCD0); } - if ((reg & B_EN_SERVO_OUT3) && _states_.servo.do3) + if ((reg & B_SERVO_OUTPUT3) && _states_.servo.do3) { _states_.servo.do3 = false; timer_type0_stop(&TCC0); } - app_regs.REG_DIS_SERVOS = reg; + app_regs.REG_DISABLE_SERVOS = reg; return true; } /************************************************************************/ -/* REG_EN_ENCODERS */ +/* REG_ENABLE_ENCODERS */ /************************************************************************/ extern int16_t previous_encoder_poke2; -void app_read_REG_EN_ENCODERS(void) +void app_read_REG_ENABLE_ENCODERS(void) { - app_regs.REG_EN_ENCODERS = 0; + app_regs.REG_ENABLE_ENCODERS = 0; if(_states_.quad_counter.port2) { - app_regs.REG_EN_ENCODERS |= B_EN_ENCODER_PORT2; + app_regs.REG_ENABLE_ENCODERS |= B_ENCODER_PORT2; } } -bool app_write_REG_EN_ENCODERS(void *a) +bool app_write_REG_ENABLE_ENCODERS(void *a) { uint8_t reg = *((uint8_t*)a); - if ((reg & B_EN_ENCODER_PORT2) && !_states_.quad_counter.port2) + if ((reg & B_ENCODER_PORT2) && !_states_.quad_counter.port2) { _states_.quad_counter.port2 = true; @@ -1514,7 +1500,7 @@ bool app_write_REG_EN_ENCODERS(void *a) TCD1_CTRLA=TC_CLKSEL_DIV1_gc; } - if (!(reg & B_EN_ENCODER_PORT2) && _states_.quad_counter.port2) + if (!(reg & B_ENCODER_PORT2) && _states_.quad_counter.port2) { if (_states_.quad_counter.port2) { @@ -1529,26 +1515,26 @@ bool app_write_REG_EN_ENCODERS(void *a) io_set_int(&PORTF, INT_LEVEL_LOW, 0, (3<<4), false); // POKE2_IR & IO IN /* Reset register */ - app_regs.REG_DATA[1] = 0; + app_regs.REG_ANALOG_DATA[1] = 0; } } - app_regs.REG_EN_ENCODERS = reg; + app_regs.REG_ENABLE_ENCODERS = reg; return true; } /************************************************************************/ -/* REG_CONF_ENCODERS */ +/* REG_ENCODER_MODE */ /************************************************************************/ -void app_read_REG_CONF_ENCODERS(void) {} -bool app_write_REG_CONF_ENCODERS(void *a) +void app_read_REG_ENCODER_MODE(void) {} +bool app_write_REG_ENCODER_MODE(void *a) { uint8_t reg = *((uint8_t*)a); - if (reg & ~MSK_ENCODERS_MODE) return false; + if (reg & ~MSK_ENCODER_MODE) return false; - app_regs.REG_CONF_ENCODERS = reg; + app_regs.REG_ENCODER_MODE = reg; return true; } /************************************************************************/ @@ -1594,43 +1580,43 @@ void app_read_REG_RESERVED9(void) {} bool app_write_REG_RESERVED9(void *a) {return true;} /************************************************************************/ -/* REG_CAM_OUT0_FRAME_ACQUIRED */ +/* REG_CAMERA0_FRAME */ /************************************************************************/ -void app_read_REG_CAM_OUT0_FRAME_ACQUIRED(void) {} -bool app_write_REG_CAM_OUT0_FRAME_ACQUIRED(void *a) {return false;} +void app_read_REG_CAMERA0_FRAME(void) {} +bool app_write_REG_CAMERA0_FRAME(void *a) { return false; } /************************************************************************/ -/* REG_CAM_OUT0_FREQ */ +/* REG_CAMERA0_FREQUENCY */ /************************************************************************/ -void app_read_REG_CAM_OUT0_FREQ(void) {} -bool app_write_REG_CAM_OUT0_FREQ(void *a) +void app_read_REG_CAMERA0_FREQUENCY(void) {} +bool app_write_REG_CAMERA0_FREQUENCY(void *a) { uint16_t reg = *((uint16_t*)a); if (reg < 2 || reg > 600) return false; - app_regs.REG_CAM_OUT0_FREQ = reg; + app_regs.REG_CAMERA0_FREQUENCY = reg; return true; } /************************************************************************/ -/* REG_CAM_OUT1_FRAME_ACQUIRED */ +/* REG_CAMERA1_FRAME */ /************************************************************************/ -void app_read_REG_CAM_OUT1_FRAME_ACQUIRED(void) {} -bool app_write_REG_CAM_OUT1_FRAME_ACQUIRED(void *a) {return false;} +void app_read_REG_CAMERA1_FRAME(void) {} +bool app_write_REG_CAMERA1_FRAME(void *a) { return false; } /************************************************************************/ -/* REG_CAM_OUT2_FREQ */ +/* REG_CAMERA1_FREQUENCY */ /************************************************************************/ -void app_read_REG_CAM_OUT1_FREQ(void) {} -bool app_write_REG_CAM_OUT1_FREQ(void *a) +void app_read_REG_CAMERA1_FREQUENCY(void) {} +bool app_write_REG_CAMERA1_FREQUENCY(void *a) { uint16_t reg = *((uint16_t*)a); if (reg < 2 || reg > 600) return false; - app_regs.REG_CAM_OUT1_FREQ = reg; + app_regs.REG_CAMERA1_FREQUENCY = reg; return true; } @@ -1658,10 +1644,10 @@ bool app_write_REG_RESERVED13(void *a) {return true;} /************************************************************************/ -/* REG_MOTOR_OUT2_PERIOD */ +/* REG_SERVO_MOTOR2_PERIOD */ /************************************************************************/ -void app_read_REG_MOTOR_OUT2_PERIOD(void) {} -bool app_write_REG_MOTOR_OUT2_PERIOD(void *a) +void app_read_REG_SERVO_MOTOR2_PERIOD(void) {} +bool app_write_REG_SERVO_MOTOR2_PERIOD(void *a) { uint16_t reg = *((uint16_t*)a); @@ -1673,14 +1659,15 @@ bool app_write_REG_MOTOR_OUT2_PERIOD(void *a) TCD0_PER = (reg >> 1) - 1; } - app_regs.REG_MOTOR_OUT2_PERIOD = reg; + app_regs.REG_SERVO_MOTOR2_PERIOD = reg; return true; } + /************************************************************************/ -/* REG_MOTOR_OUT2_PULSE */ +/* REG_SERVO_MOTOR2_PULSE */ /************************************************************************/ -void app_read_REG_MOTOR_OUT2_PULSE(void) {} -bool app_write_REG_MOTOR_OUT2_PULSE(void *a) +void app_read_REG_SERVO_MOTOR2_PULSE(void) {} +bool app_write_REG_SERVO_MOTOR2_PULSE(void *a) { uint16_t reg = *((uint16_t*)a); @@ -1692,16 +1679,16 @@ bool app_write_REG_MOTOR_OUT2_PULSE(void *a) TCD0_CCA = (reg >> 1) - 1; } - app_regs.REG_MOTOR_OUT2_PULSE = reg; + app_regs.REG_SERVO_MOTOR2_PULSE = reg; return true; } /************************************************************************/ -/* REG_MOTOR_OUT3_PERIOD */ +/* REG_SERVO_MOTOR3_PERIOD */ /************************************************************************/ -void app_read_REG_MOTOR_OUT3_PERIOD(void) {} -bool app_write_REG_MOTOR_OUT3_PERIOD(void *a) +void app_read_REG_SERVO_MOTOR3_PERIOD(void) {} +bool app_write_REG_SERVO_MOTOR3_PERIOD(void *a) { uint16_t reg = *((uint16_t*)a); @@ -1713,14 +1700,14 @@ bool app_write_REG_MOTOR_OUT3_PERIOD(void *a) TCC0_PER = (reg >> 1) - 1; } - app_regs.REG_MOTOR_OUT3_PERIOD = reg; + app_regs.REG_SERVO_MOTOR3_PERIOD = reg; return true; } /************************************************************************/ -/* REG_MOTOR_OUT3_PULSE */ +/* REG_SERVO_MOTOR3_PULSE */ /************************************************************************/ -void app_read_REG_MOTOR_OUT3_PULSE(void) {} -bool app_write_REG_MOTOR_OUT3_PULSE(void *a) +void app_read_REG_SERVO_MOTOR3_PULSE(void) {} +bool app_write_REG_SERVO_MOTOR3_PULSE(void *a) { uint16_t reg = *((uint16_t*)a); @@ -1732,7 +1719,7 @@ bool app_write_REG_MOTOR_OUT3_PULSE(void *a) TCC0_CCA = (reg >> 1) - 1; } - app_regs.REG_MOTOR_OUT3_PULSE = reg; + app_regs.REG_SERVO_MOTOR3_PULSE = reg; return true; } @@ -1760,14 +1747,14 @@ bool app_write_REG_RESERVED17(void *a) {return true;} /************************************************************************/ -/* REG_ENCODER_PORT2_RESET */ +/* REG_ENCODER_RESET */ /************************************************************************/ -void app_read_REG_ENCODERS_RESET(void) {} -bool app_write_REG_ENCODERS_RESET(void *a) +void app_read_REG_ENCODER_RESET(void) {} +bool app_write_REG_ENCODER_RESET(void *a) { uint8_t reg = *((uint8_t*)a); - if (reg & B_RST_ENCODER_PORT2) + if (reg & B_ENCODER_PORT2) { if (_states_.quad_counter.port2) { @@ -1776,7 +1763,7 @@ bool app_write_REG_ENCODERS_RESET(void *a) } } - app_regs.REG_ENCODERS_RESET = reg; + app_regs.REG_ENCODER_RESET = reg; return true; } @@ -1796,7 +1783,7 @@ bool app_write_REG_ENABLE_SERIAL_TIMESTAMP(void *a) { uint8_t reg = *((uint8_t*)a); - if ((reg & B_EN_SRL_TSTAMP_PORT2) && !_states_.timestamp_tx.port2) + if ((reg & B_TIMESTAMP_PORT2) && !_states_.timestamp_tx.port2) { _states_.timestamp_tx.port2 = true; @@ -1815,7 +1802,7 @@ bool app_write_REG_ENABLE_SERIAL_TIMESTAMP(void *a) } - if (!(reg & B_EN_ENCODER_PORT2) && _states_.timestamp_tx.port2) + if (!(reg & B_ENCODER_PORT2) && _states_.timestamp_tx.port2) { _states_.timestamp_tx.port2 = false; @@ -1862,11 +1849,11 @@ ISR(USARTF1_DRE_vect, ISR_NAKED) /************************************************************************/ void update_DIO_to_mimic (unsigned char reg) { - if (reg & GM_MIMIC_DIO0) + if (reg & GM_MIMIC_OUTPUT_DIO0) io_pin2out(&PORTD, 4, OUT_IO_DIGITAL, IN_EN_IO_EN); // DIO0 to output - if (reg & GM_MIMIC_DIO0) + if (reg & GM_MIMIC_OUTPUT_DIO0) io_pin2out(&PORTE, 4, OUT_IO_DIGITAL, IN_EN_IO_EN); // DIO1 to output - if (reg & GM_MIMIC_DIO0) + if (reg & GM_MIMIC_OUTPUT_DIO0) io_pin2out(&PORTF, 4, OUT_IO_DIGITAL, IN_EN_IO_EN); // DIO2 to output } @@ -1966,12 +1953,12 @@ bool app_write_REG_RESERVED23(void *a) {return true;} void app_read_REG_RESERVED24(void) {} bool app_write_REG_RESERVED24(void *a) {return true;} /************************************************************************/ -/* REG_RESERVED25 */ +/* REG_POKE_INPUT_FILTER */ /************************************************************************/ -void app_read_REG_POKE_INPUT_FILTER_MS(void) {} -bool app_write_REG_POKE_INPUT_FILTER_MS(void *a) +void app_read_REG_POKE_INPUT_FILTER(void) {} +bool app_write_REG_POKE_INPUT_FILTER(void *a) { uint8_t reg = *((uint8_t*)a); - app_regs.REG_POKE_INPUT_FILTER_MS = reg; + app_regs.REG_POKE_INPUT_FILTER = reg; return true; } \ No newline at end of file diff --git a/Firmware/Behavior/app_funcs.h b/Firmware/Behavior/app_funcs.h index 5d57c95..4b65154 100644 --- a/Firmware/Behavior/app_funcs.h +++ b/Firmware/Behavior/app_funcs.h @@ -20,26 +20,26 @@ /************************************************************************/ /* Prototypes */ /************************************************************************/ -void app_read_REG_PORT_DIS(void); +void app_read_REG_DIGITAL_INPUT_STATE(void); void app_read_REG_RESERVED0(void); -void app_read_REG_OUTPUTS_SET(void); -void app_read_REG_OUTPUTS_CLEAR(void); -void app_read_REG_OUTPUTS_TOGGLE(void); -void app_read_REG_OUTPUTS_OUT(void); -void app_read_REG_PORT_DIOS_SET(void); -void app_read_REG_PORT_DIOS_CLEAR(void); -void app_read_REG_PORT_DIOS_TOGGLE(void); -void app_read_REG_PORT_DIOS_OUT(void); -void app_read_REG_PORT_DIOS_CONF(void); -void app_read_REG_PORT_DIOS_IN(void); -void app_read_REG_DATA(void); -void app_read_REG_OUTPUT_PULSE_EN(void); -void app_read_REG_PULSE_PORT0_DO(void); -void app_read_REG_PULSE_PORT1_DO(void); -void app_read_REG_PULSE_PORT2_DO(void); -void app_read_REG_PULSE_PORT0_12V(void); -void app_read_REG_PULSE_PORT1_12V(void); -void app_read_REG_PULSE_PORT2_12V(void); +void app_read_REG_OUTPUT_SET(void); +void app_read_REG_OUTPUT_CLEAR(void); +void app_read_REG_OUTPUT_TOGGLE(void); +void app_read_REG_OUTPUT_STATE(void); +void app_read_REG_PORT_DIO_SET(void); +void app_read_REG_PORT_DIO_CLEAR(void); +void app_read_REG_PORT_DIO_TOGGLE(void); +void app_read_REG_PORT_DIO_STATE(void); +void app_read_REG_PORT_DIO_DIRECTION(void); +void app_read_REG_PORT_DIO_STATE_EVENT(void); +void app_read_REG_ANALOG_DATA(void); +void app_read_REG_OUTPUT_PULSE_ENABLE(void); +void app_read_REG_PULSE_DO_PORT0(void); +void app_read_REG_PULSE_DO_PORT1(void); +void app_read_REG_PULSE_DO_PORT2(void); +void app_read_REG_PULSE_SUPPLY_PORT0(void); +void app_read_REG_PULSE_SUPPLY_PORT1(void); +void app_read_REG_PULSE_SUPPLY_PORT2(void); void app_read_REG_PULSE_LED0(void); void app_read_REG_PULSE_LED1(void); void app_read_REG_PULSE_RGB0(void); @@ -48,30 +48,30 @@ void app_read_REG_PULSE_DO0(void); void app_read_REG_PULSE_DO1(void); void app_read_REG_PULSE_DO2(void); void app_read_REG_PULSE_DO3(void); -void app_read_REG_FREQ_DO0(void); -void app_read_REG_FREQ_DO1(void); -void app_read_REG_FREQ_DO2(void); -void app_read_REG_FREQ_DO3(void); -void app_read_REG_DCYCLE_DO0(void); -void app_read_REG_DCYCLE_DO1(void); -void app_read_REG_DCYCLE_DO2(void); -void app_read_REG_DCYCLE_DO3(void); +void app_read_REG_PWM_FREQUENCY_DO0(void); +void app_read_REG_PWM_FREQUENCY_DO1(void); +void app_read_REG_PWM_FREQUENCY_DO2(void); +void app_read_REG_PWM_FREQUENCY_DO3(void); +void app_read_REG_PWM_DUTY_CYCLE_DO0(void); +void app_read_REG_PWM_DUTY_CYCLE_DO1(void); +void app_read_REG_PWM_DUTY_CYCLE_DO2(void); +void app_read_REG_PWM_DUTY_CYCLE_DO3(void); void app_read_REG_PWM_START(void); void app_read_REG_PWM_STOP(void); -void app_read_REG_RGBS(void); +void app_read_REG_RGB_ALL(void); void app_read_REG_RGB0(void); void app_read_REG_RGB1(void); void app_read_REG_LED0_CURRENT(void); void app_read_REG_LED1_CURRENT(void); void app_read_REG_LED0_MAX_CURRENT(void); void app_read_REG_LED1_MAX_CURRENT(void); -void app_read_REG_EVNT_ENABLE(void); +void app_read_REG_EVENT_ENABLE(void); void app_read_REG_START_CAMERAS(void); void app_read_REG_STOP_CAMERAS(void); -void app_read_REG_EN_SERVOS(void); -void app_read_REG_DIS_SERVOS(void); -void app_read_REG_EN_ENCODERS(void); -void app_read_REG_CONF_ENCODERS(void); +void app_read_REG_ENABLE_SERVOS(void); +void app_read_REG_DISABLE_SERVOS(void); +void app_read_REG_ENABLE_ENCODERS(void); +void app_read_REG_ENCODER_MODE(void); void app_read_REG_RESERVED2(void); void app_read_REG_RESERVED3(void); void app_read_REG_RESERVED4(void); @@ -80,23 +80,23 @@ void app_read_REG_RESERVED6(void); void app_read_REG_RESERVED7(void); void app_read_REG_RESERVED8(void); void app_read_REG_RESERVED9(void); -void app_read_REG_CAM_OUT0_FRAME_ACQUIRED(void); -void app_read_REG_CAM_OUT0_FREQ(void); -void app_read_REG_CAM_OUT1_FRAME_ACQUIRED(void); -void app_read_REG_CAM_OUT1_FREQ(void); +void app_read_REG_CAMERA0_FRAME(void); +void app_read_REG_CAMERA0_FREQUENCY(void); +void app_read_REG_CAMERA1_FRAME(void); +void app_read_REG_CAMERA1_FREQUENCY(void); void app_read_REG_RESERVED10(void); void app_read_REG_RESERVED11(void); void app_read_REG_RESERVED12(void); void app_read_REG_RESERVED13(void); -void app_read_REG_MOTOR_OUT2_PERIOD(void); -void app_read_REG_MOTOR_OUT2_PULSE(void); -void app_read_REG_MOTOR_OUT3_PERIOD(void); -void app_read_REG_MOTOR_OUT3_PULSE(void); +void app_read_REG_SERVO_MOTOR2_PERIOD(void); +void app_read_REG_SERVO_MOTOR2_PULSE(void); +void app_read_REG_SERVO_MOTOR3_PERIOD(void); +void app_read_REG_SERVO_MOTOR3_PULSE(void); void app_read_REG_RESERVED14(void); void app_read_REG_RESERVED15(void); void app_read_REG_RESERVED16(void); void app_read_REG_RESERVED17(void); -void app_read_REG_ENCODERS_RESET(void); +void app_read_REG_ENCODER_RESET(void); void app_read_REG_RESERVED18(void); void app_read_REG_ENABLE_SERIAL_TIMESTAMP(void); void app_read_REG_MIMIC_PORT0_IR(void); @@ -110,29 +110,28 @@ void app_read_REG_MIMIC_PORT1_VALVE(void); void app_read_REG_MIMIC_PORT2_VALVE(void); void app_read_REG_RESERVED23(void); void app_read_REG_RESERVED24(void); -void app_read_REG_POKE_INPUT_FILTER_MS(void); +void app_read_REG_POKE_INPUT_FILTER(void); - -bool app_write_REG_PORT_DIS(void *a); +bool app_write_REG_DIGITAL_INPUT_STATE(void *a); bool app_write_REG_RESERVED0(void *a); -bool app_write_REG_OUTPUTS_SET(void *a); -bool app_write_REG_OUTPUTS_CLEAR(void *a); -bool app_write_REG_OUTPUTS_TOGGLE(void *a); -bool app_write_REG_OUTPUTS_OUT(void *a); -bool app_write_REG_PORT_DIOS_SET(void *a); -bool app_write_REG_PORT_DIOS_CLEAR(void *a); -bool app_write_REG_PORT_DIOS_TOGGLE(void *a); -bool app_write_REG_PORT_DIOS_OUT(void *a); -bool app_write_REG_PORT_DIOS_CONF(void *a); -bool app_write_REG_PORT_DIOS_IN(void *a); -bool app_write_REG_DATA(void *a); -bool app_write_REG_OUTPUT_PULSE_EN(void *a); -bool app_write_REG_PULSE_PORT0_DO(void *a); -bool app_write_REG_PULSE_PORT1_DO(void *a); -bool app_write_REG_PULSE_PORT2_DO(void *a); -bool app_write_REG_PULSE_PORT0_12V(void *a); -bool app_write_REG_PULSE_PORT1_12V(void *a); -bool app_write_REG_PULSE_PORT2_12V(void *a); +bool app_write_REG_OUTPUT_SET(void *a); +bool app_write_REG_OUTPUT_CLEAR(void *a); +bool app_write_REG_OUTPUT_TOGGLE(void *a); +bool app_write_REG_OUTPUT_STATE(void *a); +bool app_write_REG_PORT_DIO_SET(void *a); +bool app_write_REG_PORT_DIO_CLEAR(void *a); +bool app_write_REG_PORT_DIO_TOGGLE(void *a); +bool app_write_REG_PORT_DIO_STATE(void *a); +bool app_write_REG_PORT_DIO_DIRECTION(void *a); +bool app_write_REG_PORT_DIO_STATE_EVENT(void *a); +bool app_write_REG_ANALOG_DATA(void *a); +bool app_write_REG_OUTPUT_PULSE_ENABLE(void *a); +bool app_write_REG_PULSE_DO_PORT0(void *a); +bool app_write_REG_PULSE_DO_PORT1(void *a); +bool app_write_REG_PULSE_DO_PORT2(void *a); +bool app_write_REG_PULSE_SUPPLY_PORT0(void *a); +bool app_write_REG_PULSE_SUPPLY_PORT1(void *a); +bool app_write_REG_PULSE_SUPPLY_PORT2(void *a); bool app_write_REG_PULSE_LED0(void *a); bool app_write_REG_PULSE_LED1(void *a); bool app_write_REG_PULSE_RGB0(void *a); @@ -141,30 +140,30 @@ bool app_write_REG_PULSE_DO0(void *a); bool app_write_REG_PULSE_DO1(void *a); bool app_write_REG_PULSE_DO2(void *a); bool app_write_REG_PULSE_DO3(void *a); -bool app_write_REG_FREQ_DO0(void *a); -bool app_write_REG_FREQ_DO1(void *a); -bool app_write_REG_FREQ_DO2(void *a); -bool app_write_REG_FREQ_DO3(void *a); -bool app_write_REG_DCYCLE_DO0(void *a); -bool app_write_REG_DCYCLE_DO1(void *a); -bool app_write_REG_DCYCLE_DO2(void *a); -bool app_write_REG_DCYCLE_DO3(void *a); +bool app_write_REG_PWM_FREQUENCY_DO0(void *a); +bool app_write_REG_PWM_FREQUENCY_DO1(void *a); +bool app_write_REG_PWM_FREQUENCY_DO2(void *a); +bool app_write_REG_PWM_FREQUENCY_DO3(void *a); +bool app_write_REG_PWM_DUTY_CYCLE_DO0(void *a); +bool app_write_REG_PWM_DUTY_CYCLE_DO1(void *a); +bool app_write_REG_PWM_DUTY_CYCLE_DO2(void *a); +bool app_write_REG_PWM_DUTY_CYCLE_DO3(void *a); bool app_write_REG_PWM_START(void *a); bool app_write_REG_PWM_STOP(void *a); -bool app_write_REG_RGBS(void *a); +bool app_write_REG_RGB_ALL(void *a); bool app_write_REG_RGB0(void *a); bool app_write_REG_RGB1(void *a); bool app_write_REG_LED0_CURRENT(void *a); bool app_write_REG_LED1_CURRENT(void *a); bool app_write_REG_LED0_MAX_CURRENT(void *a); bool app_write_REG_LED1_MAX_CURRENT(void *a); -bool app_write_REG_EVNT_ENABLE(void *a); +bool app_write_REG_EVENT_ENABLE(void *a); bool app_write_REG_START_CAMERAS(void *a); bool app_write_REG_STOP_CAMERAS(void *a); -bool app_write_REG_EN_SERVOS(void *a); -bool app_write_REG_DIS_SERVOS(void *a); -bool app_write_REG_EN_ENCODERS(void *a); -bool app_write_REG_CONF_ENCODERS(void *a); +bool app_write_REG_ENABLE_SERVOS(void *a); +bool app_write_REG_DISABLE_SERVOS(void *a); +bool app_write_REG_ENABLE_ENCODERS(void *a); +bool app_write_REG_ENCODER_MODE(void *a); bool app_write_REG_RESERVED2(void *a); bool app_write_REG_RESERVED3(void *a); bool app_write_REG_RESERVED4(void *a); @@ -173,23 +172,23 @@ bool app_write_REG_RESERVED6(void *a); bool app_write_REG_RESERVED7(void *a); bool app_write_REG_RESERVED8(void *a); bool app_write_REG_RESERVED9(void *a); -bool app_write_REG_CAM_OUT0_FRAME_ACQUIRED(void *a); -bool app_write_REG_CAM_OUT0_FREQ(void *a); -bool app_write_REG_CAM_OUT1_FRAME_ACQUIRED(void *a); -bool app_write_REG_CAM_OUT1_FREQ(void *a); +bool app_write_REG_CAMERA0_FRAME(void *a); +bool app_write_REG_CAMERA0_FREQUENCY(void *a); +bool app_write_REG_CAMERA1_FRAME(void *a); +bool app_write_REG_CAMERA1_FREQUENCY(void *a); bool app_write_REG_RESERVED10(void *a); bool app_write_REG_RESERVED11(void *a); bool app_write_REG_RESERVED12(void *a); bool app_write_REG_RESERVED13(void *a); -bool app_write_REG_MOTOR_OUT2_PERIOD(void *a); -bool app_write_REG_MOTOR_OUT2_PULSE(void *a); -bool app_write_REG_MOTOR_OUT3_PERIOD(void *a); -bool app_write_REG_MOTOR_OUT3_PULSE(void *a); +bool app_write_REG_SERVO_MOTOR2_PERIOD(void *a); +bool app_write_REG_SERVO_MOTOR2_PULSE(void *a); +bool app_write_REG_SERVO_MOTOR3_PERIOD(void *a); +bool app_write_REG_SERVO_MOTOR3_PULSE(void *a); bool app_write_REG_RESERVED14(void *a); bool app_write_REG_RESERVED15(void *a); bool app_write_REG_RESERVED16(void *a); bool app_write_REG_RESERVED17(void *a); -bool app_write_REG_ENCODERS_RESET(void *a); +bool app_write_REG_ENCODER_RESET(void *a); bool app_write_REG_RESERVED18(void *a); bool app_write_REG_ENABLE_SERIAL_TIMESTAMP(void *a); bool app_write_REG_MIMIC_PORT0_IR(void *a); @@ -203,7 +202,7 @@ bool app_write_REG_MIMIC_PORT1_VALVE(void *a); bool app_write_REG_MIMIC_PORT2_VALVE(void *a); bool app_write_REG_RESERVED23(void *a); bool app_write_REG_RESERVED24(void *a); -bool app_write_REG_POKE_INPUT_FILTER_MS(void *a); +bool app_write_REG_POKE_INPUT_FILTER(void *a); #endif /* _APP_FUNCTIONS_H_ */ \ No newline at end of file diff --git a/Firmware/Behavior/app_ios_and_regs.c b/Firmware/Behavior/app_ios_and_regs.c index 559c824..29869bb 100644 --- a/Firmware/Behavior/app_ios_and_regs.c +++ b/Firmware/Behavior/app_ios_and_regs.c @@ -6,17 +6,17 @@ extern AppRegs app_regs; void mimic_ir_or_valve (uint8_t reg, uint8_t what_to_do) { - if (reg & MSK_MIMIC) + if (reg & MSK_MIMIC_OUTPUT) { switch (reg) { - case GM_MIMIC_DO0: if (what_to_do == _SET_IO_) set_DO0; if (what_to_do == _CLR_IO_) clr_DO0; if (what_to_do == _TGL_IO_) tgl_DO0; break; - case GM_MIMIC_DO1: if (what_to_do == _SET_IO_) set_DO1; if (what_to_do == _CLR_IO_) clr_DO1; if (what_to_do == _TGL_IO_) tgl_DO1; break; - case GM_MIMIC_DO2: if (what_to_do == _SET_IO_) set_DO2; if (what_to_do == _CLR_IO_) clr_DO2; if (what_to_do == _TGL_IO_) tgl_DO2; break; - case GM_MIMIC_DO3: if (what_to_do == _SET_IO_) set_DO3; if (what_to_do == _CLR_IO_) clr_DO3; if (what_to_do == _TGL_IO_) tgl_DO3; break; - case GM_MIMIC_DIO0: if (what_to_do == _SET_IO_) set_io(PORTD, 5); if (what_to_do == _CLR_IO_) clear_io(PORTD, 5); if (what_to_do == _TGL_IO_) toggle_io(PORTD, 5); break; - case GM_MIMIC_DIO1: if (what_to_do == _SET_IO_) set_io(PORTE, 5); if (what_to_do == _CLR_IO_) clear_io(PORTE, 5); if (what_to_do == _TGL_IO_) toggle_io(PORTE, 5); break; - case GM_MIMIC_DIO2: if (what_to_do == _SET_IO_) set_io(PORTF, 5); if (what_to_do == _CLR_IO_) clear_io(PORTF, 5); if (what_to_do == _TGL_IO_) toggle_io(PORTF, 5); break; + case GM_MIMIC_OUTPUT_DO0: if (what_to_do == _SET_IO_) set_DO0; if (what_to_do == _CLR_IO_) clr_DO0; if (what_to_do == _TGL_IO_) tgl_DO0; break; + case GM_MIMIC_OUTPUT_DO1: if (what_to_do == _SET_IO_) set_DO1; if (what_to_do == _CLR_IO_) clr_DO1; if (what_to_do == _TGL_IO_) tgl_DO1; break; + case GM_MIMIC_OUTPUT_DO2: if (what_to_do == _SET_IO_) set_DO2; if (what_to_do == _CLR_IO_) clr_DO2; if (what_to_do == _TGL_IO_) tgl_DO2; break; + case GM_MIMIC_OUTPUT_DO3: if (what_to_do == _SET_IO_) set_DO3; if (what_to_do == _CLR_IO_) clr_DO3; if (what_to_do == _TGL_IO_) tgl_DO3; break; + case GM_MIMIC_OUTPUT_DIO0: if (what_to_do == _SET_IO_) set_io(PORTD, 5); if (what_to_do == _CLR_IO_) clear_io(PORTD, 5); if (what_to_do == _TGL_IO_) toggle_io(PORTD, 5); break; + case GM_MIMIC_OUTPUT_DIO1: if (what_to_do == _SET_IO_) set_io(PORTE, 5); if (what_to_do == _CLR_IO_) clear_io(PORTE, 5); if (what_to_do == _TGL_IO_) toggle_io(PORTE, 5); break; + case GM_MIMIC_OUTPUT_DIO2: if (what_to_do == _SET_IO_) set_io(PORTF, 5); if (what_to_do == _CLR_IO_) clear_io(PORTF, 5); if (what_to_do == _TGL_IO_) toggle_io(PORTF, 5); break; } } } @@ -26,7 +26,8 @@ void mimic_ir_or_valve (uint8_t reg, uint8_t what_to_do) /* Configure and initialize IOs */ /************************************************************************/ void init_ios(void) -{ /* Configure input pins */ +{ + /* Configure input pins */ io_pin2in(&PORTD, 4, PULL_IO_UP, SENSE_IO_EDGES_BOTH); // POKE0_IR io_pin2in(&PORTD, 5, PULL_IO_UP, SENSE_IO_EDGES_BOTH); // POKE0_IO io_pin2in(&PORTE, 4, PULL_IO_UP, SENSE_IO_EDGES_BOTH); // POKE1_IR @@ -269,26 +270,26 @@ uint16_t app_regs_n_elements[] = { }; uint8_t *app_regs_pointer[] = { - (uint8_t*)(&app_regs.REG_PORT_DIS), + (uint8_t*)(&app_regs.REG_DIGITAL_INPUT_STATE), (uint8_t*)(&app_regs.REG_RESERVED0), - (uint8_t*)(&app_regs.REG_OUTPUTS_SET), - (uint8_t*)(&app_regs.REG_OUTPUTS_CLEAR), - (uint8_t*)(&app_regs.REG_OUTPUTS_TOGGLE), - (uint8_t*)(&app_regs.REG_OUTPUTS_OUT), - (uint8_t*)(&app_regs.REG_PORT_DIOS_SET), - (uint8_t*)(&app_regs.REG_PORT_DIOS_CLEAR), - (uint8_t*)(&app_regs.REG_PORT_DIOS_TOGGLE), - (uint8_t*)(&app_regs.REG_PORT_DIOS_OUT), - (uint8_t*)(&app_regs.REG_PORT_DIOS_CONF), - (uint8_t*)(&app_regs.REG_PORT_DIOS_IN), - (uint8_t*)(app_regs.REG_DATA), - (uint8_t*)(&app_regs.REG_OUTPUT_PULSE_EN), - (uint8_t*)(&app_regs.REG_PULSE_PORT0_DO), - (uint8_t*)(&app_regs.REG_PULSE_PORT1_DO), - (uint8_t*)(&app_regs.REG_PULSE_PORT2_DO), - (uint8_t*)(&app_regs.REG_PULSE_PORT0_12V), - (uint8_t*)(&app_regs.REG_PULSE_PORT1_12V), - (uint8_t*)(&app_regs.REG_PULSE_PORT2_12V), + (uint8_t*)(&app_regs.REG_OUTPUT_SET), + (uint8_t*)(&app_regs.REG_OUTPUT_CLEAR), + (uint8_t*)(&app_regs.REG_OUTPUT_TOGGLE), + (uint8_t*)(&app_regs.REG_OUTPUT_STATE), + (uint8_t*)(&app_regs.REG_PORT_DIO_SET), + (uint8_t*)(&app_regs.REG_PORT_DIO_CLEAR), + (uint8_t*)(&app_regs.REG_PORT_DIO_TOGGLE), + (uint8_t*)(&app_regs.REG_PORT_DIO_STATE), + (uint8_t*)(&app_regs.REG_PORT_DIO_DIRECTION), + (uint8_t*)(&app_regs.REG_PORT_DIO_STATE_EVENT), + (uint8_t*)(&app_regs.REG_ANALOG_DATA), + (uint8_t*)(&app_regs.REG_OUTPUT_PULSE_ENABLE), + (uint8_t*)(&app_regs.REG_PULSE_DO_PORT0), + (uint8_t*)(&app_regs.REG_PULSE_DO_PORT1), + (uint8_t*)(&app_regs.REG_PULSE_DO_PORT2), + (uint8_t*)(&app_regs.REG_PULSE_SUPPLY_PORT0), + (uint8_t*)(&app_regs.REG_PULSE_SUPPLY_PORT1), + (uint8_t*)(&app_regs.REG_PULSE_SUPPLY_PORT2), (uint8_t*)(&app_regs.REG_PULSE_LED0), (uint8_t*)(&app_regs.REG_PULSE_LED1), (uint8_t*)(&app_regs.REG_PULSE_RGB0), @@ -297,30 +298,30 @@ uint8_t *app_regs_pointer[] = { (uint8_t*)(&app_regs.REG_PULSE_DO1), (uint8_t*)(&app_regs.REG_PULSE_DO2), (uint8_t*)(&app_regs.REG_PULSE_DO3), - (uint8_t*)(&app_regs.REG_FREQ_DO0), - (uint8_t*)(&app_regs.REG_FREQ_DO1), - (uint8_t*)(&app_regs.REG_FREQ_DO2), - (uint8_t*)(&app_regs.REG_FREQ_DO3), - (uint8_t*)(&app_regs.REG_DCYCLE_DO0), - (uint8_t*)(&app_regs.REG_DCYCLE_DO1), - (uint8_t*)(&app_regs.REG_DCYCLE_DO2), - (uint8_t*)(&app_regs.REG_DCYCLE_DO3), + (uint8_t*)(&app_regs.REG_PWM_FREQUENCY_DO0), + (uint8_t*)(&app_regs.REG_PWM_FREQUENCY_DO1), + (uint8_t*)(&app_regs.REG_PWM_FREQUENCY_DO2), + (uint8_t*)(&app_regs.REG_PWM_FREQUENCY_DO3), + (uint8_t*)(&app_regs.REG_PWM_DUTY_CYCLE_DO0), + (uint8_t*)(&app_regs.REG_PWM_DUTY_CYCLE_DO1), + (uint8_t*)(&app_regs.REG_PWM_DUTY_CYCLE_DO2), + (uint8_t*)(&app_regs.REG_PWM_DUTY_CYCLE_DO3), (uint8_t*)(&app_regs.REG_PWM_START), (uint8_t*)(&app_regs.REG_PWM_STOP), - (uint8_t*)(app_regs.REG_RGBS), - (uint8_t*)(app_regs.REG_RGB0), - (uint8_t*)(app_regs.REG_RGB1), + (uint8_t*)(&app_regs.REG_RGB_ALL), + (uint8_t*)(&app_regs.REG_RGB0), + (uint8_t*)(&app_regs.REG_RGB1), (uint8_t*)(&app_regs.REG_LED0_CURRENT), (uint8_t*)(&app_regs.REG_LED1_CURRENT), (uint8_t*)(&app_regs.REG_LED0_MAX_CURRENT), (uint8_t*)(&app_regs.REG_LED1_MAX_CURRENT), - (uint8_t*)(&app_regs.REG_EVNT_ENABLE), + (uint8_t*)(&app_regs.REG_EVENT_ENABLE), (uint8_t*)(&app_regs.REG_START_CAMERAS), (uint8_t*)(&app_regs.REG_STOP_CAMERAS), - (uint8_t*)(&app_regs.REG_EN_SERVOS), - (uint8_t*)(&app_regs.REG_DIS_SERVOS), - (uint8_t*)(&app_regs.REG_EN_ENCODERS), - (uint8_t*)(&app_regs.REG_CONF_ENCODERS), + (uint8_t*)(&app_regs.REG_ENABLE_SERVOS), + (uint8_t*)(&app_regs.REG_DISABLE_SERVOS), + (uint8_t*)(&app_regs.REG_ENABLE_ENCODERS), + (uint8_t*)(&app_regs.REG_ENCODER_MODE), (uint8_t*)(&app_regs.REG_RESERVED2), (uint8_t*)(&app_regs.REG_RESERVED3), (uint8_t*)(&app_regs.REG_RESERVED4), @@ -329,23 +330,23 @@ uint8_t *app_regs_pointer[] = { (uint8_t*)(&app_regs.REG_RESERVED7), (uint8_t*)(&app_regs.REG_RESERVED8), (uint8_t*)(&app_regs.REG_RESERVED9), - (uint8_t*)(&app_regs.REG_CAM_OUT0_FRAME_ACQUIRED), - (uint8_t*)(&app_regs.REG_CAM_OUT0_FREQ), - (uint8_t*)(&app_regs.REG_CAM_OUT1_FRAME_ACQUIRED), - (uint8_t*)(&app_regs.REG_CAM_OUT1_FREQ), + (uint8_t*)(&app_regs.REG_CAMERA0_FRAME), + (uint8_t*)(&app_regs.REG_CAMERA0_FREQUENCY), + (uint8_t*)(&app_regs.REG_CAMERA1_FRAME), + (uint8_t*)(&app_regs.REG_CAMERA1_FREQUENCY), (uint8_t*)(&app_regs.REG_RESERVED10), (uint8_t*)(&app_regs.REG_RESERVED11), (uint8_t*)(&app_regs.REG_RESERVED12), (uint8_t*)(&app_regs.REG_RESERVED13), - (uint8_t*)(&app_regs.REG_MOTOR_OUT2_PERIOD), - (uint8_t*)(&app_regs.REG_MOTOR_OUT2_PULSE), - (uint8_t*)(&app_regs.REG_MOTOR_OUT3_PERIOD), - (uint8_t*)(&app_regs.REG_MOTOR_OUT3_PULSE), + (uint8_t*)(&app_regs.REG_SERVO_MOTOR2_PERIOD), + (uint8_t*)(&app_regs.REG_SERVO_MOTOR2_PULSE), + (uint8_t*)(&app_regs.REG_SERVO_MOTOR3_PERIOD), + (uint8_t*)(&app_regs.REG_SERVO_MOTOR3_PULSE), (uint8_t*)(&app_regs.REG_RESERVED14), (uint8_t*)(&app_regs.REG_RESERVED15), (uint8_t*)(&app_regs.REG_RESERVED16), (uint8_t*)(&app_regs.REG_RESERVED17), - (uint8_t*)(&app_regs.REG_ENCODERS_RESET), + (uint8_t*)(&app_regs.REG_ENCODER_RESET), (uint8_t*)(&app_regs.REG_RESERVED18), (uint8_t*)(&app_regs.REG_ENABLE_SERIAL_TIMESTAMP), (uint8_t*)(&app_regs.REG_MIMIC_PORT0_IR), @@ -359,5 +360,5 @@ uint8_t *app_regs_pointer[] = { (uint8_t*)(&app_regs.REG_MIMIC_PORT2_VALVE), (uint8_t*)(&app_regs.REG_RESERVED23), (uint8_t*)(&app_regs.REG_RESERVED24), - (uint8_t*)(&app_regs.REG_POKE_INPUT_FILTER_MS) + (uint8_t*)(&app_regs.REG_POKE_INPUT_FILTER) }; \ No newline at end of file diff --git a/Firmware/Behavior/app_ios_and_regs.h b/Firmware/Behavior/app_ios_and_regs.h index 2fcd64c..7119555 100644 --- a/Firmware/Behavior/app_ios_and_regs.h +++ b/Firmware/Behavior/app_ios_and_regs.h @@ -12,38 +12,40 @@ void mimic_ir_or_valve (uint8_t reg, uint8_t what_t_do); /************************************************************************/ /* Definition of input pins */ /************************************************************************/ -// POKE0_IR Description: Poke 0 infrared -// POKE0_IO Description: Poke 0 DIO -// POKE1_IR Description: Poke 1 infrared -// POKE1_IO Description: Poke 1 DIO -// POKE2_IR Description: Poke 2 infrared -// POKE2_IO Description: Poke 2 DIO +// POKE0_IR Description: Poke 0 infrared +// POKE0_IO Description: Poke 0 DIO +// POKE1_IR Description: Poke 1 infrared +// POKE1_IO Description: Poke 1 DIO +// POKE2_IR Description: Poke 2 infrared +// POKE2_IO Description: Poke 2 DIO +// ADC1_AVAILABLE Description: ADC1 is available on hardware +// DI3 Description: Input DI3 -#define read_POKE0_IR read_io(PORTD, 4) // POKE0_IR -#define read_POKE0_IO read_io(PORTD, 5) // POKE0_IO -#define read_POKE1_IR read_io(PORTE, 4) // POKE1_IR -#define read_POKE1_IO read_io(PORTE, 5) // POKE1_IO -#define read_POKE2_IR read_io(PORTF, 4) // POKE2_IR -#define read_POKE2_IO read_io(PORTF, 5) // POKE2_IO -#define read_ADC1_AVAILABLE read_io(PORTJ, 0) // ADC1_AVAILABLE -#define read_DI3 read_io(PORTH, 0) // DI3 +#define read_POKE0_IR read_io(PORTD, 4) // POKE0_IR +#define read_POKE0_IO read_io(PORTD, 5) // POKE0_IO +#define read_POKE1_IR read_io(PORTE, 4) // POKE1_IR +#define read_POKE1_IO read_io(PORTE, 5) // POKE1_IO +#define read_POKE2_IR read_io(PORTF, 4) // POKE2_IR +#define read_POKE2_IO read_io(PORTF, 5) // POKE2_IO +#define read_ADC1_AVAILABLE read_io(PORTJ, 0) // ADC1_AVAILABLE +#define read_DI3 read_io(PORTH, 0) // DI3 /************************************************************************/ /* Definition of output pins */ /************************************************************************/ -// DO3 Description: Output DO0 -// DO2 Description: Output DO1 -// DO1 Description: Output DO2 -// DO0 Description: Output DO3 -// LED0 Description: Output LED0 -// LED1 Description: Output LED1 -// RGBS Description: One wire LEDs -// POKE0_LED Description: Poke 0 digital output -// POKE0_VALVE Description: Poke 0 Valve -// POKE1_LED Description: Poke 1 digital output -// POKE1_VALVE Description: Poke 1 Valve -// POKE2_LED Description: Poke 2 digital output -// POKE2_VALVE Description: Poke 2 Valve +// DO3 Description: Output DO0 +// DO2 Description: Output DO1 +// DO1 Description: Output DO2 +// DO0 Description: Output DO3 +// LED0 Description: Output LED0 +// LED1 Description: Output LED1 +// RGBS Description: One wire LEDs +// POKE0_LED Description: Poke 0 digital output +// POKE0_VALVE Description: Poke 0 Valve +// POKE1_LED Description: Poke 1 digital output +// POKE1_VALVE Description: Poke 1 Valve +// POKE2_LED Description: Poke 2 digital output +// POKE2_VALVE Description: Poke 2 Valve /* DO3 */ #define set_DO3 set_io(PORTC, 0) @@ -129,26 +131,26 @@ void mimic_ir_or_valve (uint8_t reg, uint8_t what_t_do); /************************************************************************/ typedef struct { - uint8_t REG_PORT_DIS; + uint8_t REG_DIGITAL_INPUT_STATE; uint8_t REG_RESERVED0; - uint16_t REG_OUTPUTS_SET; - uint16_t REG_OUTPUTS_CLEAR; - uint16_t REG_OUTPUTS_TOGGLE; - uint16_t REG_OUTPUTS_OUT; - uint8_t REG_PORT_DIOS_SET; - uint8_t REG_PORT_DIOS_CLEAR; - uint8_t REG_PORT_DIOS_TOGGLE; - uint8_t REG_PORT_DIOS_OUT; - uint8_t REG_PORT_DIOS_CONF; - uint8_t REG_PORT_DIOS_IN; - int16_t REG_DATA[3]; - uint16_t REG_OUTPUT_PULSE_EN; - uint16_t REG_PULSE_PORT0_DO; - uint16_t REG_PULSE_PORT1_DO; - uint16_t REG_PULSE_PORT2_DO; - uint16_t REG_PULSE_PORT0_12V; - uint16_t REG_PULSE_PORT1_12V; - uint16_t REG_PULSE_PORT2_12V; + uint16_t REG_OUTPUT_SET; + uint16_t REG_OUTPUT_CLEAR; + uint16_t REG_OUTPUT_TOGGLE; + uint16_t REG_OUTPUT_STATE; + uint8_t REG_PORT_DIO_SET; + uint8_t REG_PORT_DIO_CLEAR; + uint8_t REG_PORT_DIO_TOGGLE; + uint8_t REG_PORT_DIO_STATE; + uint8_t REG_PORT_DIO_DIRECTION; + uint8_t REG_PORT_DIO_STATE_EVENT; + int16_t REG_ANALOG_DATA[3]; + uint16_t REG_OUTPUT_PULSE_ENABLE; + uint16_t REG_PULSE_DO_PORT0; + uint16_t REG_PULSE_DO_PORT1; + uint16_t REG_PULSE_DO_PORT2; + uint16_t REG_PULSE_SUPPLY_PORT0; + uint16_t REG_PULSE_SUPPLY_PORT1; + uint16_t REG_PULSE_SUPPLY_PORT2; uint16_t REG_PULSE_LED0; uint16_t REG_PULSE_LED1; uint16_t REG_PULSE_RGB0; @@ -157,30 +159,30 @@ typedef struct uint16_t REG_PULSE_DO1; uint16_t REG_PULSE_DO2; uint16_t REG_PULSE_DO3; - uint16_t REG_FREQ_DO0; - uint16_t REG_FREQ_DO1; - uint16_t REG_FREQ_DO2; - uint16_t REG_FREQ_DO3; - uint8_t REG_DCYCLE_DO0; - uint8_t REG_DCYCLE_DO1; - uint8_t REG_DCYCLE_DO2; - uint8_t REG_DCYCLE_DO3; + uint16_t REG_PWM_FREQUENCY_DO0; + uint16_t REG_PWM_FREQUENCY_DO1; + uint16_t REG_PWM_FREQUENCY_DO2; + uint16_t REG_PWM_FREQUENCY_DO3; + uint8_t REG_PWM_DUTY_CYCLE_DO0; + uint8_t REG_PWM_DUTY_CYCLE_DO1; + uint8_t REG_PWM_DUTY_CYCLE_DO2; + uint8_t REG_PWM_DUTY_CYCLE_DO3; uint8_t REG_PWM_START; uint8_t REG_PWM_STOP; - uint8_t REG_RGBS[6]; + uint8_t REG_RGB_ALL[6]; uint8_t REG_RGB0[3]; uint8_t REG_RGB1[3]; uint8_t REG_LED0_CURRENT; uint8_t REG_LED1_CURRENT; uint8_t REG_LED0_MAX_CURRENT; uint8_t REG_LED1_MAX_CURRENT; - uint8_t REG_EVNT_ENABLE; + uint8_t REG_EVENT_ENABLE; uint8_t REG_START_CAMERAS; uint8_t REG_STOP_CAMERAS; - uint8_t REG_EN_SERVOS; - uint8_t REG_DIS_SERVOS; - uint8_t REG_EN_ENCODERS; - uint8_t REG_CONF_ENCODERS; + uint8_t REG_ENABLE_SERVOS; + uint8_t REG_DISABLE_SERVOS; + uint8_t REG_ENABLE_ENCODERS; + uint8_t REG_ENCODER_MODE; uint8_t REG_RESERVED2; uint8_t REG_RESERVED3; uint8_t REG_RESERVED4; @@ -189,23 +191,23 @@ typedef struct uint8_t REG_RESERVED7; uint8_t REG_RESERVED8; uint8_t REG_RESERVED9; - uint8_t REG_CAM_OUT0_FRAME_ACQUIRED; - uint16_t REG_CAM_OUT0_FREQ; - uint8_t REG_CAM_OUT1_FRAME_ACQUIRED; - uint16_t REG_CAM_OUT1_FREQ; + uint8_t REG_CAMERA0_FRAME; + uint16_t REG_CAMERA0_FREQUENCY; + uint8_t REG_CAMERA1_FRAME; + uint16_t REG_CAMERA1_FREQUENCY; uint8_t REG_RESERVED10; uint8_t REG_RESERVED11; uint8_t REG_RESERVED12; uint8_t REG_RESERVED13; - uint16_t REG_MOTOR_OUT2_PERIOD; - uint16_t REG_MOTOR_OUT2_PULSE; - uint16_t REG_MOTOR_OUT3_PERIOD; - uint16_t REG_MOTOR_OUT3_PULSE; + uint16_t REG_SERVO_MOTOR2_PERIOD; + uint16_t REG_SERVO_MOTOR2_PULSE; + uint16_t REG_SERVO_MOTOR3_PERIOD; + uint16_t REG_SERVO_MOTOR3_PULSE; uint8_t REG_RESERVED14; uint8_t REG_RESERVED15; uint8_t REG_RESERVED16; uint8_t REG_RESERVED17; - uint8_t REG_ENCODERS_RESET; + uint8_t REG_ENCODER_RESET; uint8_t REG_RESERVED18; uint8_t REG_ENABLE_SERIAL_TIMESTAMP; uint8_t REG_MIMIC_PORT0_IR; @@ -219,107 +221,107 @@ typedef struct uint8_t REG_MIMIC_PORT2_VALVE; uint8_t REG_RESERVED23; uint8_t REG_RESERVED24; - uint8_t REG_POKE_INPUT_FILTER_MS; + uint8_t REG_POKE_INPUT_FILTER; } AppRegs; /************************************************************************/ /* Registers' address */ /************************************************************************/ /* Registers */ -#define ADD_REG_PORT_DIS 32 // U8 Reflects the state of DI digital lines of each Port -#define ADD_REG_RESERVED0 33 // U8 Reserved for future use -#define ADD_REG_OUTPUTS_SET 34 // U16 Set the correspondent output -#define ADD_REG_OUTPUTS_CLEAR 35 // U16 Clear the correspondent output -#define ADD_REG_OUTPUTS_TOGGLE 36 // U16 Toggle the correspondent output -#define ADD_REG_OUTPUTS_OUT 37 // U16 Control the correspondent output -#define ADD_REG_PORT_DIOS_SET 38 // U8 Set the correspondent DIO -#define ADD_REG_PORT_DIOS_CLEAR 39 // U8 Clear the correspondent DIO -#define ADD_REG_PORT_DIOS_TOGGLE 40 // U8 Toggle the correspondent DIO -#define ADD_REG_PORT_DIOS_OUT 41 // U8 Control the correspondent DIO -#define ADD_REG_PORT_DIOS_CONF 42 // U8 Set the DIOs direction (1 is output) -#define ADD_REG_PORT_DIOS_IN 43 // U8 State of the DIOs -#define ADD_REG_DATA 44 // I16 Voltage at ADC input and decoder (poke 2) value -#define ADD_REG_OUTPUT_PULSE_EN 45 // U16 Enable the output pulse for the selected output -#define ADD_REG_PULSE_PORT0_DO 46 // U16 Configuration of the output pulse [1 : 65535] -#define ADD_REG_PULSE_PORT1_DO 47 // U16 -#define ADD_REG_PULSE_PORT2_DO 48 // U16 -#define ADD_REG_PULSE_PORT0_12V 49 // U16 -#define ADD_REG_PULSE_PORT1_12V 50 // U16 -#define ADD_REG_PULSE_PORT2_12V 51 // U16 -#define ADD_REG_PULSE_LED0 52 // U16 -#define ADD_REG_PULSE_LED1 53 // U16 -#define ADD_REG_PULSE_RGB0 54 // U16 -#define ADD_REG_PULSE_RGB1 55 // U16 -#define ADD_REG_PULSE_DO0 56 // U16 -#define ADD_REG_PULSE_DO1 57 // U16 -#define ADD_REG_PULSE_DO2 58 // U16 -#define ADD_REG_PULSE_DO3 59 // U16 -#define ADD_REG_FREQ_DO0 60 // U16 Frequency of the output [1 : TBD] -#define ADD_REG_FREQ_DO1 61 // U16 -#define ADD_REG_FREQ_DO2 62 // U16 -#define ADD_REG_FREQ_DO3 63 // U16 -#define ADD_REG_DCYCLE_DO0 64 // U8 Dutycycle of the output [1 : 99] -#define ADD_REG_DCYCLE_DO1 65 // U8 -#define ADD_REG_DCYCLE_DO2 66 // U8 -#define ADD_REG_DCYCLE_DO3 67 // U8 -#define ADD_REG_PWM_START 68 // U8 Start the PWM output on the selected output -#define ADD_REG_PWM_STOP 69 // U8 Stop the PWM output on the selected output -#define ADD_REG_RGBS 70 // U8 [RGB0 Green] [RGB0 Red] [RGB0 Blue] [RGB1 Green] [RGB1 Red] [RGB1 Blue] -#define ADD_REG_RGB0 71 // U8 [RGB0 Green] [RGB0 Red] [RGB0 Blue] -#define ADD_REG_RGB1 72 // U8 [RGB1 Green] [RGB1 Red] [RGB1 Blue] -#define ADD_REG_LED0_CURRENT 73 // U8 Configuration of current to drive LED 0 [2:100] -#define ADD_REG_LED1_CURRENT 74 // U8 Configuration of current to drive LED 1 [2:100] -#define ADD_REG_LED0_MAX_CURRENT 75 // U8 Configuration of current to drive LED 0 [5:100] -#define ADD_REG_LED1_MAX_CURRENT 76 // U8 Configuration of current to drive LED 1 [5:100] -#define ADD_REG_EVNT_ENABLE 77 // U8 Enable the Events -#define ADD_REG_START_CAMERAS 78 // U8 Enable cameras -#define ADD_REG_STOP_CAMERAS 79 // U8 Disable cameras -#define ADD_REG_EN_SERVOS 80 // U8 Enable servo motors control -#define ADD_REG_DIS_SERVOS 81 // U8 Disable servo motors control -#define ADD_REG_EN_ENCODERS 82 // U8 Enable encoders -#define ADD_REG_CONF_ENCODERS 83 // U8 Configure the operation mode of the quadrature encoders -#define ADD_REG_RESERVED2 84 // U8 Reserved for future use -#define ADD_REG_RESERVED3 85 // U8 Reserved for future use -#define ADD_REG_RESERVED4 86 // U8 Reserved for future use -#define ADD_REG_RESERVED5 87 // U8 Reserved for future use -#define ADD_REG_RESERVED6 88 // U8 Reserved for future use -#define ADD_REG_RESERVED7 89 // U8 Reserved for future use -#define ADD_REG_RESERVED8 90 // U8 Reserved for future use -#define ADD_REG_RESERVED9 91 // U8 Reserved for future use -#define ADD_REG_CAM_OUT0_FRAME_ACQUIRED 92 // U8 -#define ADD_REG_CAM_OUT0_FREQ 93 // U16 Configures the camera's sample frequency [1;600] -#define ADD_REG_CAM_OUT1_FRAME_ACQUIRED 94 // U8 -#define ADD_REG_CAM_OUT1_FREQ 95 // U16 Configures the camera's sample frequency [1;600] -#define ADD_REG_RESERVED10 96 // U8 Reserved for future use -#define ADD_REG_RESERVED11 97 // U8 Reserved for future use -#define ADD_REG_RESERVED12 98 // U8 Reserved for future use -#define ADD_REG_RESERVED13 99 // U8 Reserved for future use -#define ADD_REG_MOTOR_OUT2_PERIOD 100 // U16 Configures the servo motor period (us) (sensitive to 2 us) -#define ADD_REG_MOTOR_OUT2_PULSE 101 // U16 Configures the servo motor pulse (us) (sensitive to 2 us) -#define ADD_REG_MOTOR_OUT3_PERIOD 102 // U16 Configures the servo motor period (us) (sensitive to 2 us) -#define ADD_REG_MOTOR_OUT3_PULSE 103 // U16 Configures the servo motor pulse (us) (sensitive to 2 us) -#define ADD_REG_RESERVED14 104 // U8 Reserved for future use -#define ADD_REG_RESERVED15 105 // U8 Reserved for future use -#define ADD_REG_RESERVED16 106 // U8 Reserved for future use -#define ADD_REG_RESERVED17 107 // U8 Reserved for future use -#define ADD_REG_ENCODERS_RESET 108 // U8 Resets the encoders counter to ZERO -#define ADD_REG_RESERVED18 109 // U8 Reserved for future use -#define ADD_REG_ENABLE_SERIAL_TIMESTAMP 110 // U8 Enables the timestamp TX -#define ADD_REG_MIMIC_PORT0_IR 111 // U8 -#define ADD_REG_MIMIC_PORT1_IR 112 // U8 -#define ADD_REG_MIMIC_PORT2_IR 113 // U8 -#define ADD_REG_RESERVED20 114 // U8 -#define ADD_REG_RESERVED21 115 // U8 -#define ADD_REG_RESERVED22 116 // U8 -#define ADD_REG_MIMIC_PORT0_VALVE 117 // U8 -#define ADD_REG_MIMIC_PORT1_VALVE 118 // U8 -#define ADD_REG_MIMIC_PORT2_VALVE 119 // U8 -#define ADD_REG_RESERVED23 120 // U8 -#define ADD_REG_RESERVED24 121 // U8 -#define ADD_REG_POKE_INPUT_FILTER_MS 122 // U8 Set the low pass filter time value for the pokes inputs (ms) +#define ADD_REG_DIGITAL_INPUT_STATE 32 // U8 Reflects the state of DI digital lines of each Port +#define ADD_REG_RESERVED0 33 // U8 Reserved for future use +#define ADD_REG_OUTPUT_SET 34 // U16 Set the specified digital output lines. +#define ADD_REG_OUTPUT_CLEAR 35 // U16 Clear the specified digital output lines +#define ADD_REG_OUTPUT_TOGGLE 36 // U16 Toggle the specified digital output lines +#define ADD_REG_OUTPUT_STATE 37 // U16 Write the state of all digital output lines +#define ADD_REG_PORT_DIO_SET 38 // U8 Set the specified port DIO lines +#define ADD_REG_PORT_DIO_CLEAR 39 // U8 Clear the specified port DIO lines +#define ADD_REG_PORT_DIO_TOGGLE 40 // U8 Toggle the specified port DIO lines +#define ADD_REG_PORT_DIO_STATE 41 // U8 Write the state of all port DIO lines +#define ADD_REG_PORT_DIO_DIRECTION 42 // U8 Specifies which of the port DIO lines are outputs +#define ADD_REG_PORT_DIO_STATE_EVENT 43 // U8 Specifies the state of the port DIO lines on a line change +#define ADD_REG_ANALOG_DATA 44 // I16 Voltage at the ADC input and encoder value on Port 2 +#define ADD_REG_OUTPUT_PULSE_ENABLE 45 // U16 Enables the pulse function for the specified output lines +#define ADD_REG_PULSE_DO_PORT0 46 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_DO_PORT1 47 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_DO_PORT2 48 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_SUPPLY_PORT0 49 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_SUPPLY_PORT1 50 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_SUPPLY_PORT2 51 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_LED0 52 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_LED1 53 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_RGB0 54 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_RGB1 55 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_DO0 56 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_DO1 57 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_DO2 58 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PULSE_DO3 59 // U16 Specifies the duration of the output pulse in milliseconds. +#define ADD_REG_PWM_FREQUENCY_DO0 60 // U16 Specifies the frequency of the PWM at DO0. +#define ADD_REG_PWM_FREQUENCY_DO1 61 // U16 Specifies the frequency of the PWM at DO1. +#define ADD_REG_PWM_FREQUENCY_DO2 62 // U16 Specifies the frequency of the PWM at DO2. +#define ADD_REG_PWM_FREQUENCY_DO3 63 // U16 Specifies the frequency of the PWM at DO3. +#define ADD_REG_PWM_DUTY_CYCLE_DO0 64 // U8 Specifies the duty cycle of the PWM at DO0. +#define ADD_REG_PWM_DUTY_CYCLE_DO1 65 // U8 Specifies the duty cycle of the PWM at DO1. +#define ADD_REG_PWM_DUTY_CYCLE_DO2 66 // U8 Specifies the duty cycle of the PWM at DO2. +#define ADD_REG_PWM_DUTY_CYCLE_DO3 67 // U8 Specifies the duty cycle of the PWM at DO3. +#define ADD_REG_PWM_START 68 // U8 Starts the PWM on the selected output lines. +#define ADD_REG_PWM_STOP 69 // U8 Stops the PWM on the selected output lines. +#define ADD_REG_RGB_ALL 70 // U8 Specifies the state of all RGB LED channels. +#define ADD_REG_RGB0 71 // U8 Specifies the state of the RGB0 LED channels. +#define ADD_REG_RGB1 72 // U8 Specifies the state of the RGB1 LED channels. +#define ADD_REG_LED0_CURRENT 73 // U8 Specifies the configuration of current to drive LED 0. +#define ADD_REG_LED1_CURRENT 74 // U8 Specifies the configuration of current to drive LED 1. +#define ADD_REG_LED0_MAX_CURRENT 75 // U8 Specifies the configuration of current to drive LED 0. +#define ADD_REG_LED1_MAX_CURRENT 76 // U8 Specifies the configuration of current to drive LED 1. +#define ADD_REG_EVENT_ENABLE 77 // U8 Specifies the active events in the device. +#define ADD_REG_START_CAMERAS 78 // U8 Specifies the camera outputs to enable in the device. +#define ADD_REG_STOP_CAMERAS 79 // U8 Specifies the camera outputs to disable in the device. An event will be issued when the trigger signal is actually stopped being generated. +#define ADD_REG_ENABLE_SERVOS 80 // U8 Specifies the servo outputs to enable in the device. +#define ADD_REG_DISABLE_SERVOS 81 // U8 Specifies the servo outputs to disable in the device. +#define ADD_REG_ENABLE_ENCODERS 82 // U8 Specifies the port quadrature counters to enable in the device. +#define ADD_REG_ENCODER_MODE 83 // U8 Configures the operation mode of the quadrature encoders. +#define ADD_REG_RESERVED2 84 // U8 Reserved for future use +#define ADD_REG_RESERVED3 85 // U8 Reserved for future use +#define ADD_REG_RESERVED4 86 // U8 Reserved for future use +#define ADD_REG_RESERVED5 87 // U8 Reserved for future use +#define ADD_REG_RESERVED6 88 // U8 Reserved for future use +#define ADD_REG_RESERVED7 89 // U8 Reserved for future use +#define ADD_REG_RESERVED8 90 // U8 Reserved for future use +#define ADD_REG_RESERVED9 91 // U8 Reserved for future use +#define ADD_REG_CAMERA0_FRAME 92 // U8 Specifies that a frame was acquired on camera 0. +#define ADD_REG_CAMERA0_FREQUENCY 93 // U16 Specifies the trigger frequency for camera 0. +#define ADD_REG_CAMERA1_FRAME 94 // U8 Specifies that a frame was acquired on camera 1. +#define ADD_REG_CAMERA1_FREQUENCY 95 // U16 Specifies the trigger frequency for camera 1. +#define ADD_REG_RESERVED10 96 // U8 Reserved for future use +#define ADD_REG_RESERVED11 97 // U8 Reserved for future use +#define ADD_REG_RESERVED12 98 // U8 Reserved for future use +#define ADD_REG_RESERVED13 99 // U8 Reserved for future use +#define ADD_REG_SERVO_MOTOR2_PERIOD 100 // U16 Specifies the period of the servo motor in DO2, in microseconds. +#define ADD_REG_SERVO_MOTOR2_PULSE 101 // U16 Specifies the pulse of the servo motor in DO2, in microseconds. +#define ADD_REG_SERVO_MOTOR3_PERIOD 102 // U16 Specifies the period of the servo motor in DO3, in microseconds. +#define ADD_REG_SERVO_MOTOR3_PULSE 103 // U16 Specifies the pulse of the servo motor in DO3, in microseconds. +#define ADD_REG_RESERVED14 104 // U8 Reserved for future use +#define ADD_REG_RESERVED15 105 // U8 Reserved for future use +#define ADD_REG_RESERVED16 106 // U8 Reserved for future use +#define ADD_REG_RESERVED17 107 // U8 Reserved for future use +#define ADD_REG_ENCODER_RESET 108 // U8 Reset the counter of the specified encoders to zero. +#define ADD_REG_RESERVED18 109 // U8 Reserved for future use +#define ADD_REG_ENABLE_SERIAL_TIMESTAMP 110 // U8 Enables the timestamp for serial TX. +#define ADD_REG_MIMIC_PORT0_IR 111 // U8 Specifies the digital output to mimic the Port 0 IR state. +#define ADD_REG_MIMIC_PORT1_IR 112 // U8 Specifies the digital output to mimic the Port 1 IR state. +#define ADD_REG_MIMIC_PORT2_IR 113 // U8 Specifies the digital output to mimic the Port 2 IR state. +#define ADD_REG_RESERVED20 114 // U8 Reserved for future use +#define ADD_REG_RESERVED21 115 // U8 Reserved for future use +#define ADD_REG_RESERVED22 116 // U8 Reserved for future use +#define ADD_REG_MIMIC_PORT0_VALVE 117 // U8 Specifies the digital output to mimic the Port 0 valve state. +#define ADD_REG_MIMIC_PORT1_VALVE 118 // U8 Specifies the digital output to mimic the Port 1 valve state. +#define ADD_REG_MIMIC_PORT2_VALVE 119 // U8 Specifies the digital output to mimic the Port 2 valve state. +#define ADD_REG_RESERVED23 120 // U8 Reserved for future use +#define ADD_REG_RESERVED24 121 // U8 Reserved for future use +#define ADD_REG_POKE_INPUT_FILTER 122 // U8 Specifies the low pass filter time value for poke inputs, in ms. /************************************************************************/ -/* PWM Generator registers' memory limits */ +/* Behavior registers' memory limits */ /* */ /* DON'T change the APP_REGS_ADD_MIN value !!! */ /* DON'T change these names !!! */ @@ -332,55 +334,54 @@ typedef struct /************************************************************************/ /* Registers' bits */ /************************************************************************/ -#define B_DI0 (1<<0) // Port 0 digital input -#define B_DI1 (1<<1) // Port 1 digital input -#define B_DI2 (1<<2) // Port 2 digital input -#define B_DI3 (1<<3) // Digital input DI3 -#define B_PORT0_DO (1<<0) // -#define B_PORT1_DO (1<<1) // -#define B_PORT2_DO (1<<2) // -#define B_PORT0_12V (1<<3) // -#define B_PORT1_12V (1<<4) // -#define B_PORT2_12V (1<<5) // -#define B_LED0 (1<<6) // -#define B_LED1 (1<<7) // -#define B_RGB0 (1<<8) // -#define B_RGB1 (1<<9) // -#define B_DO0 (1<<10) // -#define B_DO1 (1<<11) // -#define B_DO2 (1<<12) // -#define B_DO3 (1<<13) // -#define B_DIO0 (1<<0) // -#define B_DIO1 (1<<1) // -#define B_DIO2 (1<<2) // -#define B_PWM_DO0 (1<<0) // -#define B_PWM_DO1 (1<<1) // -#define B_PWM_DO2 (1<<2) // -#define B_PWM_DO3 (1<<3) // -#define B_EVT_PORT_DIS (1<<0) // Event of register POKE_IN -#define B_EVT_PORT_DIOS_IN (1<<1) // Event of register POKE_DIOS_IN -#define B_EVT_DATA (1<<2) // Event of register ADC -#define B_EVT_CAM0 (1<<3) // Event of CAM_OUT0_FRAME_ACQUIRED -#define B_EVT_CAM1 (1<<4) // Event of CAM_OUT1_FRAME_ACQUIRED -#define B_EN_CAM_OUT0 (1<<0) // Camera on digital output 0 -#define B_EN_CAM_OUT1 (1<<1) // Camera on digital output 1 -#define B_EN_SERVO_OUT2 (1<<2) // Servo on digital output 2 -#define B_EN_SERVO_OUT3 (1<<3) // Servo on digital output 3 -#define B_EN_ENCODER_PORT2 (1<<2) // Encoder on port 2 -#define MSK_ENCODERS_MODE 0x01 // -#define GM_POSITION 0x00 // -#define GM_DISPLACEMENT 0x01 // -#define B_CAM_ACQ (1<<0) // Camera frame was triggered -#define B_RST_ENCODER_PORT2 (1<<2) // Reset the encoder counter on Port 2 -#define B_EN_SRL_TSTAMP_PORT2 (1<<2) // Enable the serial timestamp TX on Port 2 -#define MSK_MIMIC 0x0F // -#define GM_MIMIC_NONE 0x00 // -#define GM_MIMIC_DIO0 0x01 // Is reflected on DIO0 -#define GM_MIMIC_DIO1 0x02 // Is reflected on DIO1 -#define GM_MIMIC_DIO2 0x03 // Is reflected on DIO2 -#define GM_MIMIC_DO0 0x04 // Is reflected on DO0 -#define GM_MIMIC_DO1 0x05 // Is reflected on DO1 -#define GM_MIMIC_DO2 0x06 // Is reflected on DO2 -#define GM_MIMIC_DO3 0x07 // Is reflected on DO3 +#define B_DI_PORT0 (1<<0) // Port 0 digital input +#define B_DI_PORT1 (1<<1) // Port 1 digital input +#define B_DI_PORT2 (1<<2) // Port 2 digital input +#define B_DI3 (1<<3) // Digital input DI3 +#define B_DO_PORT0 (1<<0) // +#define B_DO_PORT1 (1<<1) // +#define B_DO_PORT2 (1<<2) // +#define B_SUPPLY_PORT0 (1<<3) // +#define B_SUPPLY_PORT1 (1<<4) // +#define B_SUPPLY_PORT2 (1<<5) // +#define B_LED0 (1<<6) // +#define B_LED1 (1<<7) // +#define B_RGB0 (1<<8) // +#define B_RGB1 (1<<9) // +#define B_DO0 (1<<10) // +#define B_DO1 (1<<11) // +#define B_DO2 (1<<12) // +#define B_DO3 (1<<13) // +#define B_DIO0 (1<<0) // +#define B_DIO1 (1<<1) // +#define B_DIO2 (1<<2) // +#define B_PWM_DO0 (1<<0) // +#define B_PWM_DO1 (1<<1) // +#define B_PWM_DO2 (1<<2) // +#define B_PWM_DO3 (1<<3) // +#define B_PORT_DI (1<<0) // Event from register DigitalInputState +#define B_PORT_DIO (1<<1) // Event from register PortDIOStateEvent +#define B_ANALOG_DATA (1<<2) // Event from register AnalogData +#define B_CAMERA0 (1<<3) // Event from register Camera0Frame +#define B_CAMERA1 (1<<4) // Event from register Camera1Frame +#define B_CAMERA_OUTPUT0 (1<<0) // Camera on digital output 0 +#define B_CAMERA_OUTPUT1 (1<<1) // Camera on digital output 1 +#define B_SERVO_OUTPUT2 (1<<2) // Servo on digital output 2 +#define B_SERVO_OUTPUT3 (1<<3) // Servo on digital output 3 +#define B_ENCODER_PORT2 (1<<2) // Encoder on port 2 +#define B_FRAME_ACQUIRED (1<<0) // Camera frame was triggered +#define B_TIMESTAMP_PORT2 (1<<2) // Enable the serial timestamp TX on Port 2 +#define MSK_MIMIC_OUTPUT 0x07 // +#define GM_MIMIC_OUTPUT_NONE 0x00 // +#define GM_MIMIC_OUTPUT_DIO0 0x01 // Is reflected on DIO0 +#define GM_MIMIC_OUTPUT_DIO1 0x02 // Is reflected on DIO1 +#define GM_MIMIC_OUTPUT_DIO2 0x03 // Is reflected on DIO2 +#define GM_MIMIC_OUTPUT_DO0 0x04 // Is reflected on DO0 +#define GM_MIMIC_OUTPUT_DO1 0x05 // Is reflected on DO1 +#define GM_MIMIC_OUTPUT_DO2 0x06 // Is reflected on DO2 +#define GM_MIMIC_OUTPUT_DO3 0x07 // Is reflected on DO3 +#define MSK_ENCODER_MODE 0x01 // +#define GM_ENCODER_MODE_POSITION 0x00 // +#define GM_ENCODER_MODE_DISPLACEMENT 0x01 // #endif /* _APP_REGS_H_ */ \ No newline at end of file diff --git a/Firmware/Behavior/interrupts.c b/Firmware/Behavior/interrupts.c index ff83cc1..5a2c663 100644 --- a/Firmware/Behavior/interrupts.c +++ b/Firmware/Behavior/interrupts.c @@ -35,14 +35,14 @@ extern uint8_t int0_enable_counter; ISR(PORTD_INT0_vect, ISR_NAKED) { - uint8_t reg_port_dis = app_regs.REG_PORT_DIS; - uint8_t reg_port_dios_in = app_regs.REG_PORT_DIOS_IN; + uint8_t reg_port_dis = app_regs.REG_DIGITAL_INPUT_STATE; + uint8_t reg_port_dios_in = app_regs.REG_PORT_DIO_STATE_EVENT; - app_regs.REG_PORT_DIS &= ~B_DI0; - app_regs.REG_PORT_DIS |= (read_POKE0_IR) ? B_DI0 : 0; + app_regs.REG_DIGITAL_INPUT_STATE &= ~B_DI_PORT0; + app_regs.REG_DIGITAL_INPUT_STATE |= (read_POKE0_IR) ? B_DI_PORT0 : 0; - app_regs.REG_PORT_DIOS_IN &= ~B_DIO0; - app_regs.REG_PORT_DIOS_IN |= (read_POKE0_IO) ? B_DIO0 : 0; + app_regs.REG_PORT_DIO_STATE_EVENT &= ~B_DIO0; + app_regs.REG_PORT_DIO_STATE_EVENT |= (read_POKE0_IO) ? B_DIO0 : 0; if(read_POKE0_IR) @@ -50,22 +50,22 @@ ISR(PORTD_INT0_vect, ISR_NAKED) else mimic_ir_or_valve(app_regs.REG_MIMIC_PORT0_IR, _CLR_IO_); - if (app_regs.REG_EVNT_ENABLE & B_EVT_PORT_DIS) + if (app_regs.REG_EVENT_ENABLE & B_PORT_DI) { - if (reg_port_dis != app_regs.REG_PORT_DIS) + if (reg_port_dis != app_regs.REG_DIGITAL_INPUT_STATE) { - core_func_send_event(ADD_REG_PORT_DIS, true); + core_func_send_event(ADD_REG_DIGITAL_INPUT_STATE, true); - if (app_regs.REG_POKE_INPUT_FILTER_MS) + if (app_regs.REG_POKE_INPUT_FILTER) { PORTD_INTCTRL &= 0xFC; // Disable interrupt - int0_enable_counter = app_regs.REG_POKE_INPUT_FILTER_MS; + int0_enable_counter = app_regs.REG_POKE_INPUT_FILTER; } } - if (reg_port_dios_in != app_regs.REG_PORT_DIOS_IN) + if (reg_port_dios_in != app_regs.REG_PORT_DIO_STATE_EVENT) { - core_func_send_event(ADD_REG_PORT_DIOS_IN, true); + core_func_send_event(ADD_REG_PORT_DIO_STATE_EVENT, true); } } @@ -79,36 +79,36 @@ extern uint8_t int1_enable_counter; ISR(PORTE_INT0_vect, ISR_NAKED) { - uint8_t reg_port_dis = app_regs.REG_PORT_DIS; - uint8_t reg_port_dios_in = app_regs.REG_PORT_DIOS_IN; + uint8_t reg_port_dis = app_regs.REG_DIGITAL_INPUT_STATE; + uint8_t reg_port_dios_in = app_regs.REG_PORT_DIO_STATE_EVENT; - app_regs.REG_PORT_DIS &= ~B_DI1; - app_regs.REG_PORT_DIS |= (read_POKE1_IR) ? B_DI1 : 0; + app_regs.REG_DIGITAL_INPUT_STATE &= ~B_DI_PORT1; + app_regs.REG_DIGITAL_INPUT_STATE |= (read_POKE1_IR) ? B_DI_PORT1 : 0; - app_regs.REG_PORT_DIOS_IN &= ~B_DIO1; - app_regs.REG_PORT_DIOS_IN |= (read_POKE1_IO) ? B_DIO1 : 0; + app_regs.REG_PORT_DIO_STATE_EVENT &= ~B_DIO1; + app_regs.REG_PORT_DIO_STATE_EVENT |= (read_POKE1_IO) ? B_DIO1 : 0; if(read_POKE1_IR) mimic_ir_or_valve(app_regs.REG_MIMIC_PORT1_IR, _SET_IO_); else mimic_ir_or_valve(app_regs.REG_MIMIC_PORT1_IR, _CLR_IO_); - if (app_regs.REG_EVNT_ENABLE & B_EVT_PORT_DIS) + if (app_regs.REG_EVENT_ENABLE & B_PORT_DI) { - if (reg_port_dis != app_regs.REG_PORT_DIS) + if (reg_port_dis != app_regs.REG_DIGITAL_INPUT_STATE) { - core_func_send_event(ADD_REG_PORT_DIS, true); + core_func_send_event(ADD_REG_DIGITAL_INPUT_STATE, true); - if (app_regs.REG_POKE_INPUT_FILTER_MS) + if (app_regs.REG_POKE_INPUT_FILTER) { PORTE_INTCTRL &= 0xFC; // Disable interrupt - int1_enable_counter = app_regs.REG_POKE_INPUT_FILTER_MS; + int1_enable_counter = app_regs.REG_POKE_INPUT_FILTER; } } - if (reg_port_dios_in != app_regs.REG_PORT_DIOS_IN) + if (reg_port_dios_in != app_regs.REG_PORT_DIO_STATE_EVENT) { - core_func_send_event(ADD_REG_PORT_DIOS_IN, true); + core_func_send_event(ADD_REG_PORT_DIO_STATE_EVENT, true); } } @@ -122,35 +122,35 @@ extern uint8_t int2_enable_counter; ISR(PORTF_INT0_vect, ISR_NAKED) { - uint8_t reg_port_dis = app_regs.REG_PORT_DIS; - uint8_t reg_port_dios_in = app_regs.REG_PORT_DIOS_IN; + uint8_t reg_port_dis = app_regs.REG_DIGITAL_INPUT_STATE; + uint8_t reg_port_dios_in = app_regs.REG_PORT_DIO_STATE_EVENT; - app_regs.REG_PORT_DIS &= ~B_DI2; - app_regs.REG_PORT_DIS |= (read_POKE2_IR) ? B_DI2 : 0; + app_regs.REG_DIGITAL_INPUT_STATE &= ~B_DI_PORT2; + app_regs.REG_DIGITAL_INPUT_STATE |= (read_POKE2_IR) ? B_DI_PORT2 : 0; - app_regs.REG_PORT_DIOS_IN &= ~B_DIO2; - app_regs.REG_PORT_DIOS_IN |= (read_POKE2_IO) ? B_DIO2 : 0; + app_regs.REG_PORT_DIO_STATE_EVENT &= ~B_DIO2; + app_regs.REG_PORT_DIO_STATE_EVENT |= (read_POKE2_IO) ? B_DIO2 : 0; if(read_POKE2_IR) mimic_ir_or_valve(app_regs.REG_MIMIC_PORT2_IR, _SET_IO_); else mimic_ir_or_valve(app_regs.REG_MIMIC_PORT2_IR, _CLR_IO_); - if (app_regs.REG_EVNT_ENABLE & B_EVT_PORT_DIS) + if (app_regs.REG_EVENT_ENABLE & B_PORT_DI) { - if (reg_port_dis != app_regs.REG_PORT_DIS) + if (reg_port_dis != app_regs.REG_DIGITAL_INPUT_STATE) { - core_func_send_event(ADD_REG_PORT_DIS, true); + core_func_send_event(ADD_REG_DIGITAL_INPUT_STATE, true); - if (app_regs.REG_POKE_INPUT_FILTER_MS) + if (app_regs.REG_POKE_INPUT_FILTER) { PORTF_INTCTRL &= 0xFC; // Disable interrupt - int2_enable_counter = app_regs.REG_POKE_INPUT_FILTER_MS; + int2_enable_counter = app_regs.REG_POKE_INPUT_FILTER; } } - if (reg_port_dios_in != app_regs.REG_PORT_DIOS_IN) + if (reg_port_dios_in != app_regs.REG_PORT_DIO_STATE_EVENT) { - core_func_send_event(ADD_REG_PORT_DIOS_IN, true); + core_func_send_event(ADD_REG_PORT_DIO_STATE_EVENT, true); } } @@ -162,16 +162,16 @@ ISR(PORTF_INT0_vect, ISR_NAKED) /************************************************************************/ ISR(PORTH_INT0_vect, ISR_NAKED) { - uint8_t reg_port_dis = app_regs.REG_PORT_DIS; + uint8_t reg_port_dis = app_regs.REG_DIGITAL_INPUT_STATE; - app_regs.REG_PORT_DIS &= ~B_DI3; - app_regs.REG_PORT_DIS |= (read_DI3) ? B_DI3 : 0; + app_regs.REG_DIGITAL_INPUT_STATE &= ~B_DI3; + app_regs.REG_DIGITAL_INPUT_STATE |= (read_DI3) ? B_DI3 : 0; - if (app_regs.REG_EVNT_ENABLE & B_EVT_PORT_DIS) + if (app_regs.REG_EVENT_ENABLE & B_PORT_DI) { - if (reg_port_dis != app_regs.REG_PORT_DIS) + if (reg_port_dis != app_regs.REG_DIGITAL_INPUT_STATE) { - core_func_send_event(ADD_REG_PORT_DIS, true); + core_func_send_event(ADD_REG_DIGITAL_INPUT_STATE, true); } } @@ -204,10 +204,10 @@ ISR(TCF0_OVF_vect, ISR_NAKED) if (_states_.camera.do0) { - if (app_regs.REG_EVNT_ENABLE & B_EVT_CAM0) + if (app_regs.REG_EVENT_ENABLE & B_CAMERA0) { - app_regs.REG_CAM_OUT0_FRAME_ACQUIRED = 1; - core_func_send_event(ADD_REG_CAM_OUT0_FRAME_ACQUIRED, true); + app_regs.REG_CAMERA0_FRAME = 1; + core_func_send_event(ADD_REG_CAMERA0_FRAME, true); } } @@ -226,7 +226,7 @@ ISR(TCF0_CCA_vect, ISR_NAKED) timer_type0_stop(&TCF0); _states_.camera.do0 = false; - app_regs.REG_STOP_CAMERAS = B_EN_CAM_OUT0; + app_regs.REG_STOP_CAMERAS = B_CAMERA_OUTPUT0; core_func_send_event(ADD_REG_STOP_CAMERAS, true); } } @@ -249,10 +249,10 @@ ISR(TCE0_OVF_vect, ISR_NAKED) if (_states_.camera.do1) { - if (app_regs.REG_EVNT_ENABLE & B_EVT_CAM1) + if (app_regs.REG_EVENT_ENABLE & B_CAMERA1) { - app_regs.REG_CAM_OUT1_FRAME_ACQUIRED = 1; - core_func_send_event(ADD_REG_CAM_OUT1_FRAME_ACQUIRED, true); + app_regs.REG_CAMERA1_FRAME = 1; + core_func_send_event(ADD_REG_CAMERA1_FRAME, true); } } @@ -271,7 +271,7 @@ ISR(TCE0_CCA_vect, ISR_NAKED) timer_type0_stop(&TCE0); _states_.camera.do1 = false; - app_regs.REG_STOP_CAMERAS = B_EN_CAM_OUT1; + app_regs.REG_STOP_CAMERAS = B_CAMERA_OUTPUT1; core_func_send_event(ADD_REG_STOP_CAMERAS, true); } } @@ -327,7 +327,7 @@ ISR(ADCA_CH0_vect, ISR_NAKED) first_adc_channel = false; /* Read ADC0 Channel 0 */ - app_regs.REG_DATA[0] = ((int16_t)(ADCA_CH0_RES & 0x0FFF)) - AdcOffset; + app_regs.REG_ANALOG_DATA[0] = ((int16_t)(ADCA_CH0_RES & 0x0FFF)) - AdcOffset; if (read_ADC1_AVAILABLE) { @@ -343,22 +343,22 @@ ISR(ADCA_CH0_vect, ISR_NAKED) else { /* Read ADC0 Channel 2 */ - app_regs.REG_DATA[2] = ((int16_t)(ADCA_CH0_RES & 0x0FFF)) - AdcOffset; + app_regs.REG_ANALOG_DATA[2] = ((int16_t)(ADCA_CH0_RES & 0x0FFF)) - AdcOffset; /* Validate readings */ - if (app_regs.REG_DATA[0] < 0) - app_regs.REG_DATA[0] = 0; - if (app_regs.REG_DATA[2] < 0) - app_regs.REG_DATA[2] = 0; + if (app_regs.REG_ANALOG_DATA[0] < 0) + app_regs.REG_ANALOG_DATA[0] = 0; + if (app_regs.REG_ANALOG_DATA[2] < 0) + app_regs.REG_ANALOG_DATA[2] = 0; send_event = true; } if (send_event) { - if (app_regs.REG_EVNT_ENABLE & B_EVT_DATA) + if (app_regs.REG_EVENT_ENABLE & B_ANALOG_DATA) { - core_func_send_event(ADD_REG_DATA, false); + core_func_send_event(ADD_REG_ANALOG_DATA, false); } } diff --git a/Firmware/Behavior/ios.yml b/Firmware/Behavior/ios.yml new file mode 100644 index 0000000..0eab945 --- /dev/null +++ b/Firmware/Behavior/ios.yml @@ -0,0 +1,165 @@ +DO3: + port: PORTC + pinNumber: 0 + direction: output + allowRead: true + initialState: low + description: Output DO0 +DO2: + port: PORTD + pinNumber: 0 + direction: output + allowRead: true + initialState: low + description: Output DO1 +DO1: + port: PORTE + pinNumber: 0 + direction: output + allowRead: true + initialState: low + description: Output DO2 +DO0: + port: PORTF + pinNumber: 0 + direction: output + allowRead: true + initialState: low + description: Output DO3 +LED0: + port: PORTB + pinNumber: 6 + direction: output + allowRead: true + initialState: low + invert: true + description: Output LED0 +LED1: + port: PORTB + pinNumber: 5 + direction: output + allowRead: true + initialState: low + invert: true + description: Output LED1 +RGBS: + port: PORTC + pinNumber: 5 + direction: output + allowRead: false + initialState: low + description: One wire LEDs +POKE0_IR: + port: PORTD + pinNumber: 4 + direction: input + pinMode: pullup + triggerMode: toggle + interruptPriority: low + interruptNumber: 0 + description: Poke 0 infrared +POKE0_IO: + port: PORTD + pinNumber: 5 + direction: input + pinMode: pullup + triggerMode: toggle + interruptPriority: "off" + interruptNumber: 0 + description: Poke 0 DIO +POKE0_LED: + port: PORTD + pinNumber: 6 + direction: output + allowRead: true + initialState: low + description: Poke 0 digital output +POKE0_VALVE: + port: PORTD + pinNumber: 7 + direction: output + allowRead: true + initialState: low + description: Poke 0 Valve +POKE1_IR: + port: PORTE + pinNumber: 4 + direction: input + pinMode: pullup + triggerMode: toggle + interruptPriority: low + interruptNumber: 0 + description: Poke 1 infrared +POKE1_IO: + port: PORTE + pinNumber: 5 + direction: input + pinMode: pullup + triggerMode: toggle + interruptPriority: "off" + interruptNumber: 0 + description: Poke 1 DIO +POKE1_LED: + port: PORTE + pinNumber: 6 + direction: output + allowRead: true + initialState: low + description: Poke 1 digital output +POKE1_VALVE: + port: PORTE + pinNumber: 7 + direction: output + allowRead: true + initialState: low + description: Poke 1 Valve +POKE2_IR: + port: PORTF + pinNumber: 4 + direction: input + pinMode: pullup + triggerMode: toggle + interruptPriority: low + interruptNumber: 0 + description: Poke 2 infrared +POKE2_IO: + port: PORTF + pinNumber: 5 + direction: input + pinMode: pullup + triggerMode: toggle + interruptPriority: "off" + interruptNumber: 0 + description: Poke 2 DIO +POKE2_LED: + port: PORTF + pinNumber: 6 + direction: output + allowRead: true + initialState: low + description: Poke 2 digital output +POKE2_VALVE: + port: PORTF + pinNumber: 7 + direction: output + allowRead: true + initialState: low + description: Poke 2 Valve +ADC1_AVAILABLE: + port: PORTJ + pinNumber: 0 + direction: input + pinMode: pulldown + triggerMode: toggle + interruptPriority: "off" + interruptNumber: 0 + description: ADC1 is available on hardware +DI3: + port: PORTH + pinNumber: 0 + direction: input + pinMode: tristate + triggerMode: toggle + interruptPriority: low + interruptNumber: 0 + description: Input DI3 diff --git a/Generators/Generators.csproj b/Generators/Generators.csproj deleted file mode 100644 index b215cbb..0000000 --- a/Generators/Generators.csproj +++ /dev/null @@ -1,32 +0,0 @@ - - - true - Harp.Behavior - net6.0 - latest - bin - - - ..\device.yml - ..\ios.yml - - - ..\Interface\Harp.Behavior - ..\Firmware\Harp.Behavior - - - - - - - -p:MetadataPath=$(DeviceMetadata) -p:Namespace=$(RootNamespace) -P=$(TargetDir) - -p:RegisterMetadataPath=$(DeviceMetadata) -p:IOMetadataPath=$(IOMetadata) -P=$(TargetDir) - - - - - \ No newline at end of file diff --git a/Interface/Harp.Behavior/AsyncDevice.Generated.cs b/Interface/Harp.Behavior/AsyncDevice.Generated.cs index 0b5ee7c..14306ac 100644 --- a/Interface/Harp.Behavior/AsyncDevice.Generated.cs +++ b/Interface/Harp.Behavior/AsyncDevice.Generated.cs @@ -49,14 +49,14 @@ internal AsyncDevice(string portName) } /// - /// Asynchronously reads the contents of the DigitalInputState register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadDigitalInputStateAsync(CancellationToken cancellationToken = default) { @@ -65,14 +65,14 @@ public async Task ReadDigitalInputStateAsync(CancellationToken ca } /// - /// Asynchronously reads the timestamped contents of the DigitalInputState register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedDigitalInputStateAsync(CancellationToken cancellationToken = default) { @@ -81,14 +81,14 @@ public async Task> ReadTimestampedDigitalInputStateAs } /// - /// Asynchronously reads the contents of the OutputSet register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadOutputSetAsync(CancellationToken cancellationToken = default) { @@ -97,14 +97,14 @@ public async Task ReadOutputSetAsync(CancellationToken cancellat } /// - /// Asynchronously reads the timestamped contents of the OutputSet register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedOutputSetAsync(CancellationToken cancellationToken = default) { @@ -113,9 +113,9 @@ public async Task> ReadTimestampedOutputSetAsync(Can } /// - /// Asynchronously writes a value to the OutputSet register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -127,14 +127,14 @@ public async Task WriteOutputSetAsync(DigitalOutputs value, CancellationToken ca } /// - /// Asynchronously reads the contents of the OutputClear register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadOutputClearAsync(CancellationToken cancellationToken = default) { @@ -143,14 +143,14 @@ public async Task ReadOutputClearAsync(CancellationToken cancell } /// - /// Asynchronously reads the timestamped contents of the OutputClear register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedOutputClearAsync(CancellationToken cancellationToken = default) { @@ -159,9 +159,9 @@ public async Task> ReadTimestampedOutputClearAsync(C } /// - /// Asynchronously writes a value to the OutputClear register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -173,14 +173,14 @@ public async Task WriteOutputClearAsync(DigitalOutputs value, CancellationToken } /// - /// Asynchronously reads the contents of the OutputToggle register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadOutputToggleAsync(CancellationToken cancellationToken = default) { @@ -189,14 +189,14 @@ public async Task ReadOutputToggleAsync(CancellationToken cancel } /// - /// Asynchronously reads the timestamped contents of the OutputToggle register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedOutputToggleAsync(CancellationToken cancellationToken = default) { @@ -205,9 +205,9 @@ public async Task> ReadTimestampedOutputToggleAsync( } /// - /// Asynchronously writes a value to the OutputToggle register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -219,14 +219,14 @@ public async Task WriteOutputToggleAsync(DigitalOutputs value, CancellationToken } /// - /// Asynchronously reads the contents of the OutputState register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadOutputStateAsync(CancellationToken cancellationToken = default) { @@ -235,14 +235,14 @@ public async Task ReadOutputStateAsync(CancellationToken cancell } /// - /// Asynchronously reads the timestamped contents of the OutputState register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedOutputStateAsync(CancellationToken cancellationToken = default) { @@ -251,9 +251,9 @@ public async Task> ReadTimestampedOutputStateAsync(C } /// - /// Asynchronously writes a value to the OutputState register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -265,14 +265,14 @@ public async Task WriteOutputStateAsync(DigitalOutputs value, CancellationToken } /// - /// Asynchronously reads the contents of the PortDIOSet register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPortDIOSetAsync(CancellationToken cancellationToken = default) { @@ -281,14 +281,14 @@ public async Task ReadPortDIOSetAsync(CancellationToken cancella } /// - /// Asynchronously reads the timestamped contents of the PortDIOSet register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPortDIOSetAsync(CancellationToken cancellationToken = default) { @@ -297,9 +297,9 @@ public async Task> ReadTimestampedPortDIOSetAsync(Ca } /// - /// Asynchronously writes a value to the PortDIOSet register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -311,14 +311,14 @@ public async Task WritePortDIOSetAsync(PortDigitalIOS value, CancellationToken c } /// - /// Asynchronously reads the contents of the PortDIOClear register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPortDIOClearAsync(CancellationToken cancellationToken = default) { @@ -327,14 +327,14 @@ public async Task ReadPortDIOClearAsync(CancellationToken cancel } /// - /// Asynchronously reads the timestamped contents of the PortDIOClear register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPortDIOClearAsync(CancellationToken cancellationToken = default) { @@ -343,9 +343,9 @@ public async Task> ReadTimestampedPortDIOClearAsync( } /// - /// Asynchronously writes a value to the PortDIOClear register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -357,14 +357,14 @@ public async Task WritePortDIOClearAsync(PortDigitalIOS value, CancellationToken } /// - /// Asynchronously reads the contents of the PortDIOToggle register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPortDIOToggleAsync(CancellationToken cancellationToken = default) { @@ -373,14 +373,14 @@ public async Task ReadPortDIOToggleAsync(CancellationToken cance } /// - /// Asynchronously reads the timestamped contents of the PortDIOToggle register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPortDIOToggleAsync(CancellationToken cancellationToken = default) { @@ -389,9 +389,9 @@ public async Task> ReadTimestampedPortDIOToggleAsync } /// - /// Asynchronously writes a value to the PortDIOToggle register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -403,14 +403,14 @@ public async Task WritePortDIOToggleAsync(PortDigitalIOS value, CancellationToke } /// - /// Asynchronously reads the contents of the PortDIOState register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPortDIOStateAsync(CancellationToken cancellationToken = default) { @@ -419,14 +419,14 @@ public async Task ReadPortDIOStateAsync(CancellationToken cancel } /// - /// Asynchronously reads the timestamped contents of the PortDIOState register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPortDIOStateAsync(CancellationToken cancellationToken = default) { @@ -435,9 +435,9 @@ public async Task> ReadTimestampedPortDIOStateAsync( } /// - /// Asynchronously writes a value to the PortDIOState register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -449,14 +449,14 @@ public async Task WritePortDIOStateAsync(PortDigitalIOS value, CancellationToken } /// - /// Asynchronously reads the contents of the PortDIODirection register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPortDIODirectionAsync(CancellationToken cancellationToken = default) { @@ -465,14 +465,14 @@ public async Task ReadPortDIODirectionAsync(CancellationToken ca } /// - /// Asynchronously reads the timestamped contents of the PortDIODirection register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPortDIODirectionAsync(CancellationToken cancellationToken = default) { @@ -481,9 +481,9 @@ public async Task> ReadTimestampedPortDIODirectionAs } /// - /// Asynchronously writes a value to the PortDIODirection register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -495,14 +495,14 @@ public async Task WritePortDIODirectionAsync(PortDigitalIOS value, CancellationT } /// - /// Asynchronously reads the contents of the PortDIOStateEvent register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPortDIOStateEventAsync(CancellationToken cancellationToken = default) { @@ -511,14 +511,14 @@ public async Task ReadPortDIOStateEventAsync(CancellationToken c } /// - /// Asynchronously reads the timestamped contents of the PortDIOStateEvent register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPortDIOStateEventAsync(CancellationToken cancellationToken = default) { @@ -527,14 +527,14 @@ public async Task> ReadTimestampedPortDIOStateEventA } /// - /// Asynchronously reads the contents of the AnalogData register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadAnalogDataAsync(CancellationToken cancellationToken = default) { @@ -543,14 +543,14 @@ public async Task ReadAnalogDataAsync(CancellationToken cance } /// - /// Asynchronously reads the timestamped contents of the AnalogData register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedAnalogDataAsync(CancellationToken cancellationToken = default) { @@ -559,14 +559,14 @@ public async Task> ReadTimestampedAnalogDataAsync } /// - /// Asynchronously reads the contents of the OutputPulseEnable register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadOutputPulseEnableAsync(CancellationToken cancellationToken = default) { @@ -575,14 +575,14 @@ public async Task ReadOutputPulseEnableAsync(CancellationToken c } /// - /// Asynchronously reads the timestamped contents of the OutputPulseEnable register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedOutputPulseEnableAsync(CancellationToken cancellationToken = default) { @@ -591,9 +591,9 @@ public async Task> ReadTimestampedOutputPulseEnableA } /// - /// Asynchronously writes a value to the OutputPulseEnable register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -605,14 +605,14 @@ public async Task WriteOutputPulseEnableAsync(DigitalOutputs value, Cancellation } /// - /// Asynchronously reads the contents of the PulseDOPort0 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseDOPort0Async(CancellationToken cancellationToken = default) { @@ -621,14 +621,14 @@ public async Task ReadPulseDOPort0Async(CancellationToken cancellationTo } /// - /// Asynchronously reads the timestamped contents of the PulseDOPort0 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseDOPort0Async(CancellationToken cancellationToken = default) { @@ -637,9 +637,9 @@ public async Task> ReadTimestampedPulseDOPort0Async(Cancella } /// - /// Asynchronously writes a value to the PulseDOPort0 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -651,14 +651,14 @@ public async Task WritePulseDOPort0Async(ushort value, CancellationToken cancell } /// - /// Asynchronously reads the contents of the PulseDOPort1 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseDOPort1Async(CancellationToken cancellationToken = default) { @@ -667,14 +667,14 @@ public async Task ReadPulseDOPort1Async(CancellationToken cancellationTo } /// - /// Asynchronously reads the timestamped contents of the PulseDOPort1 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseDOPort1Async(CancellationToken cancellationToken = default) { @@ -683,9 +683,9 @@ public async Task> ReadTimestampedPulseDOPort1Async(Cancella } /// - /// Asynchronously writes a value to the PulseDOPort1 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -697,14 +697,14 @@ public async Task WritePulseDOPort1Async(ushort value, CancellationToken cancell } /// - /// Asynchronously reads the contents of the PulseDOPort2 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseDOPort2Async(CancellationToken cancellationToken = default) { @@ -713,14 +713,14 @@ public async Task ReadPulseDOPort2Async(CancellationToken cancellationTo } /// - /// Asynchronously reads the timestamped contents of the PulseDOPort2 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseDOPort2Async(CancellationToken cancellationToken = default) { @@ -729,9 +729,9 @@ public async Task> ReadTimestampedPulseDOPort2Async(Cancella } /// - /// Asynchronously writes a value to the PulseDOPort2 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -743,14 +743,14 @@ public async Task WritePulseDOPort2Async(ushort value, CancellationToken cancell } /// - /// Asynchronously reads the contents of the PulseSupplyPort0 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseSupplyPort0Async(CancellationToken cancellationToken = default) { @@ -759,14 +759,14 @@ public async Task ReadPulseSupplyPort0Async(CancellationToken cancellati } /// - /// Asynchronously reads the timestamped contents of the PulseSupplyPort0 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseSupplyPort0Async(CancellationToken cancellationToken = default) { @@ -775,9 +775,9 @@ public async Task> ReadTimestampedPulseSupplyPort0Async(Canc } /// - /// Asynchronously writes a value to the PulseSupplyPort0 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -789,14 +789,14 @@ public async Task WritePulseSupplyPort0Async(ushort value, CancellationToken can } /// - /// Asynchronously reads the contents of the PulseSupplyPort1 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseSupplyPort1Async(CancellationToken cancellationToken = default) { @@ -805,14 +805,14 @@ public async Task ReadPulseSupplyPort1Async(CancellationToken cancellati } /// - /// Asynchronously reads the timestamped contents of the PulseSupplyPort1 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseSupplyPort1Async(CancellationToken cancellationToken = default) { @@ -821,9 +821,9 @@ public async Task> ReadTimestampedPulseSupplyPort1Async(Canc } /// - /// Asynchronously writes a value to the PulseSupplyPort1 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -835,14 +835,14 @@ public async Task WritePulseSupplyPort1Async(ushort value, CancellationToken can } /// - /// Asynchronously reads the contents of the PulseSupplyPort2 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseSupplyPort2Async(CancellationToken cancellationToken = default) { @@ -851,14 +851,14 @@ public async Task ReadPulseSupplyPort2Async(CancellationToken cancellati } /// - /// Asynchronously reads the timestamped contents of the PulseSupplyPort2 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseSupplyPort2Async(CancellationToken cancellationToken = default) { @@ -867,9 +867,9 @@ public async Task> ReadTimestampedPulseSupplyPort2Async(Canc } /// - /// Asynchronously writes a value to the PulseSupplyPort2 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -881,14 +881,14 @@ public async Task WritePulseSupplyPort2Async(ushort value, CancellationToken can } /// - /// Asynchronously reads the contents of the PulseLed0 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseLed0Async(CancellationToken cancellationToken = default) { @@ -897,14 +897,14 @@ public async Task ReadPulseLed0Async(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the PulseLed0 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseLed0Async(CancellationToken cancellationToken = default) { @@ -913,9 +913,9 @@ public async Task> ReadTimestampedPulseLed0Async(Cancellatio } /// - /// Asynchronously writes a value to the PulseLed0 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -927,14 +927,14 @@ public async Task WritePulseLed0Async(ushort value, CancellationToken cancellati } /// - /// Asynchronously reads the contents of the PulseLed1 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseLed1Async(CancellationToken cancellationToken = default) { @@ -943,14 +943,14 @@ public async Task ReadPulseLed1Async(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the PulseLed1 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseLed1Async(CancellationToken cancellationToken = default) { @@ -959,9 +959,9 @@ public async Task> ReadTimestampedPulseLed1Async(Cancellatio } /// - /// Asynchronously writes a value to the PulseLed1 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -973,14 +973,14 @@ public async Task WritePulseLed1Async(ushort value, CancellationToken cancellati } /// - /// Asynchronously reads the contents of the PulseRgb0 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseRgb0Async(CancellationToken cancellationToken = default) { @@ -989,14 +989,14 @@ public async Task ReadPulseRgb0Async(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the PulseRgb0 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseRgb0Async(CancellationToken cancellationToken = default) { @@ -1005,9 +1005,9 @@ public async Task> ReadTimestampedPulseRgb0Async(Cancellatio } /// - /// Asynchronously writes a value to the PulseRgb0 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1019,14 +1019,14 @@ public async Task WritePulseRgb0Async(ushort value, CancellationToken cancellati } /// - /// Asynchronously reads the contents of the PulseRgb1 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseRgb1Async(CancellationToken cancellationToken = default) { @@ -1035,14 +1035,14 @@ public async Task ReadPulseRgb1Async(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the PulseRgb1 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseRgb1Async(CancellationToken cancellationToken = default) { @@ -1051,9 +1051,9 @@ public async Task> ReadTimestampedPulseRgb1Async(Cancellatio } /// - /// Asynchronously writes a value to the PulseRgb1 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1065,14 +1065,14 @@ public async Task WritePulseRgb1Async(ushort value, CancellationToken cancellati } /// - /// Asynchronously reads the contents of the PulseDO0 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseDO0Async(CancellationToken cancellationToken = default) { @@ -1081,14 +1081,14 @@ public async Task ReadPulseDO0Async(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the PulseDO0 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseDO0Async(CancellationToken cancellationToken = default) { @@ -1097,9 +1097,9 @@ public async Task> ReadTimestampedPulseDO0Async(Cancellation } /// - /// Asynchronously writes a value to the PulseDO0 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1111,14 +1111,14 @@ public async Task WritePulseDO0Async(ushort value, CancellationToken cancellatio } /// - /// Asynchronously reads the contents of the PulseDO1 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseDO1Async(CancellationToken cancellationToken = default) { @@ -1127,14 +1127,14 @@ public async Task ReadPulseDO1Async(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the PulseDO1 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseDO1Async(CancellationToken cancellationToken = default) { @@ -1143,9 +1143,9 @@ public async Task> ReadTimestampedPulseDO1Async(Cancellation } /// - /// Asynchronously writes a value to the PulseDO1 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1157,14 +1157,14 @@ public async Task WritePulseDO1Async(ushort value, CancellationToken cancellatio } /// - /// Asynchronously reads the contents of the PulseDO2 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseDO2Async(CancellationToken cancellationToken = default) { @@ -1173,14 +1173,14 @@ public async Task ReadPulseDO2Async(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the PulseDO2 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseDO2Async(CancellationToken cancellationToken = default) { @@ -1189,9 +1189,9 @@ public async Task> ReadTimestampedPulseDO2Async(Cancellation } /// - /// Asynchronously writes a value to the PulseDO2 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1203,14 +1203,14 @@ public async Task WritePulseDO2Async(ushort value, CancellationToken cancellatio } /// - /// Asynchronously reads the contents of the PulseDO3 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPulseDO3Async(CancellationToken cancellationToken = default) { @@ -1219,14 +1219,14 @@ public async Task ReadPulseDO3Async(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the PulseDO3 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPulseDO3Async(CancellationToken cancellationToken = default) { @@ -1235,9 +1235,9 @@ public async Task> ReadTimestampedPulseDO3Async(Cancellation } /// - /// Asynchronously writes a value to the PulseDO3 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1249,14 +1249,14 @@ public async Task WritePulseDO3Async(ushort value, CancellationToken cancellatio } /// - /// Asynchronously reads the contents of the PwmFrequencyDO0 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPwmFrequencyDO0Async(CancellationToken cancellationToken = default) { @@ -1265,14 +1265,14 @@ public async Task ReadPwmFrequencyDO0Async(CancellationToken cancellatio } /// - /// Asynchronously reads the timestamped contents of the PwmFrequencyDO0 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPwmFrequencyDO0Async(CancellationToken cancellationToken = default) { @@ -1281,9 +1281,9 @@ public async Task> ReadTimestampedPwmFrequencyDO0Async(Cance } /// - /// Asynchronously writes a value to the PwmFrequencyDO0 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1295,14 +1295,14 @@ public async Task WritePwmFrequencyDO0Async(ushort value, CancellationToken canc } /// - /// Asynchronously reads the contents of the PwmFrequencyDO1 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPwmFrequencyDO1Async(CancellationToken cancellationToken = default) { @@ -1311,14 +1311,14 @@ public async Task ReadPwmFrequencyDO1Async(CancellationToken cancellatio } /// - /// Asynchronously reads the timestamped contents of the PwmFrequencyDO1 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPwmFrequencyDO1Async(CancellationToken cancellationToken = default) { @@ -1327,9 +1327,9 @@ public async Task> ReadTimestampedPwmFrequencyDO1Async(Cance } /// - /// Asynchronously writes a value to the PwmFrequencyDO1 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1341,14 +1341,14 @@ public async Task WritePwmFrequencyDO1Async(ushort value, CancellationToken canc } /// - /// Asynchronously reads the contents of the PwmFrequencyDO2 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPwmFrequencyDO2Async(CancellationToken cancellationToken = default) { @@ -1357,14 +1357,14 @@ public async Task ReadPwmFrequencyDO2Async(CancellationToken cancellatio } /// - /// Asynchronously reads the timestamped contents of the PwmFrequencyDO2 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPwmFrequencyDO2Async(CancellationToken cancellationToken = default) { @@ -1373,9 +1373,9 @@ public async Task> ReadTimestampedPwmFrequencyDO2Async(Cance } /// - /// Asynchronously writes a value to the PwmFrequencyDO2 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1387,14 +1387,14 @@ public async Task WritePwmFrequencyDO2Async(ushort value, CancellationToken canc } /// - /// Asynchronously reads the contents of the PwmFrequencyDO3 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPwmFrequencyDO3Async(CancellationToken cancellationToken = default) { @@ -1403,14 +1403,14 @@ public async Task ReadPwmFrequencyDO3Async(CancellationToken cancellatio } /// - /// Asynchronously reads the timestamped contents of the PwmFrequencyDO3 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPwmFrequencyDO3Async(CancellationToken cancellationToken = default) { @@ -1419,9 +1419,9 @@ public async Task> ReadTimestampedPwmFrequencyDO3Async(Cance } /// - /// Asynchronously writes a value to the PwmFrequencyDO3 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1433,14 +1433,14 @@ public async Task WritePwmFrequencyDO3Async(ushort value, CancellationToken canc } /// - /// Asynchronously reads the contents of the PwmDutyCycleDO0 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPwmDutyCycleDO0Async(CancellationToken cancellationToken = default) { @@ -1449,14 +1449,14 @@ public async Task ReadPwmDutyCycleDO0Async(CancellationToken cancellationT } /// - /// Asynchronously reads the timestamped contents of the PwmDutyCycleDO0 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPwmDutyCycleDO0Async(CancellationToken cancellationToken = default) { @@ -1465,9 +1465,9 @@ public async Task> ReadTimestampedPwmDutyCycleDO0Async(Cancell } /// - /// Asynchronously writes a value to the PwmDutyCycleDO0 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1479,14 +1479,14 @@ public async Task WritePwmDutyCycleDO0Async(byte value, CancellationToken cancel } /// - /// Asynchronously reads the contents of the PwmDutyCycleDO1 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPwmDutyCycleDO1Async(CancellationToken cancellationToken = default) { @@ -1495,14 +1495,14 @@ public async Task ReadPwmDutyCycleDO1Async(CancellationToken cancellationT } /// - /// Asynchronously reads the timestamped contents of the PwmDutyCycleDO1 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPwmDutyCycleDO1Async(CancellationToken cancellationToken = default) { @@ -1511,9 +1511,9 @@ public async Task> ReadTimestampedPwmDutyCycleDO1Async(Cancell } /// - /// Asynchronously writes a value to the PwmDutyCycleDO1 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1525,14 +1525,14 @@ public async Task WritePwmDutyCycleDO1Async(byte value, CancellationToken cancel } /// - /// Asynchronously reads the contents of the PwmDutyCycleDO2 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPwmDutyCycleDO2Async(CancellationToken cancellationToken = default) { @@ -1541,14 +1541,14 @@ public async Task ReadPwmDutyCycleDO2Async(CancellationToken cancellationT } /// - /// Asynchronously reads the timestamped contents of the PwmDutyCycleDO2 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPwmDutyCycleDO2Async(CancellationToken cancellationToken = default) { @@ -1557,9 +1557,9 @@ public async Task> ReadTimestampedPwmDutyCycleDO2Async(Cancell } /// - /// Asynchronously writes a value to the PwmDutyCycleDO2 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1571,14 +1571,14 @@ public async Task WritePwmDutyCycleDO2Async(byte value, CancellationToken cancel } /// - /// Asynchronously reads the contents of the PwmDutyCycleDO3 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPwmDutyCycleDO3Async(CancellationToken cancellationToken = default) { @@ -1587,14 +1587,14 @@ public async Task ReadPwmDutyCycleDO3Async(CancellationToken cancellationT } /// - /// Asynchronously reads the timestamped contents of the PwmDutyCycleDO3 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPwmDutyCycleDO3Async(CancellationToken cancellationToken = default) { @@ -1603,9 +1603,9 @@ public async Task> ReadTimestampedPwmDutyCycleDO3Async(Cancell } /// - /// Asynchronously writes a value to the PwmDutyCycleDO3 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1617,14 +1617,14 @@ public async Task WritePwmDutyCycleDO3Async(byte value, CancellationToken cancel } /// - /// Asynchronously reads the contents of the PwmStart register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPwmStartAsync(CancellationToken cancellationToken = default) { @@ -1633,14 +1633,14 @@ public async Task ReadPwmStartAsync(CancellationToken cancellationTo } /// - /// Asynchronously reads the timestamped contents of the PwmStart register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPwmStartAsync(CancellationToken cancellationToken = default) { @@ -1649,9 +1649,9 @@ public async Task> ReadTimestampedPwmStartAsync(Cancella } /// - /// Asynchronously writes a value to the PwmStart register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1663,14 +1663,14 @@ public async Task WritePwmStartAsync(PwmOutputs value, CancellationToken cancell } /// - /// Asynchronously reads the contents of the PwmStop register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPwmStopAsync(CancellationToken cancellationToken = default) { @@ -1679,14 +1679,14 @@ public async Task ReadPwmStopAsync(CancellationToken cancellationTok } /// - /// Asynchronously reads the timestamped contents of the PwmStop register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPwmStopAsync(CancellationToken cancellationToken = default) { @@ -1695,9 +1695,9 @@ public async Task> ReadTimestampedPwmStopAsync(Cancellat } /// - /// Asynchronously writes a value to the PwmStop register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1709,14 +1709,14 @@ public async Task WritePwmStopAsync(PwmOutputs value, CancellationToken cancella } /// - /// Asynchronously reads the contents of the RgbAll register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadRgbAllAsync(CancellationToken cancellationToken = default) { @@ -1725,14 +1725,14 @@ public async Task ReadRgbAllAsync(CancellationToken cancellationT } /// - /// Asynchronously reads the timestamped contents of the RgbAll register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedRgbAllAsync(CancellationToken cancellationToken = default) { @@ -1741,9 +1741,9 @@ public async Task> ReadTimestampedRgbAllAsync(Cancell } /// - /// Asynchronously writes a value to the RgbAll register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1755,14 +1755,14 @@ public async Task WriteRgbAllAsync(RgbAllPayload value, CancellationToken cancel } /// - /// Asynchronously reads the contents of the Rgb0 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadRgb0Async(CancellationToken cancellationToken = default) { @@ -1771,14 +1771,14 @@ public async Task ReadRgb0Async(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the Rgb0 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedRgb0Async(CancellationToken cancellationToken = default) { @@ -1787,9 +1787,9 @@ public async Task> ReadTimestampedRgb0Async(Cancellation } /// - /// Asynchronously writes a value to the Rgb0 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1801,14 +1801,14 @@ public async Task WriteRgb0Async(RgbPayload value, CancellationToken cancellatio } /// - /// Asynchronously reads the contents of the Rgb1 register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadRgb1Async(CancellationToken cancellationToken = default) { @@ -1817,14 +1817,14 @@ public async Task ReadRgb1Async(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the Rgb1 register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedRgb1Async(CancellationToken cancellationToken = default) { @@ -1833,9 +1833,9 @@ public async Task> ReadTimestampedRgb1Async(Cancellation } /// - /// Asynchronously writes a value to the Rgb1 register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1847,14 +1847,14 @@ public async Task WriteRgb1Async(RgbPayload value, CancellationToken cancellatio } /// - /// Asynchronously reads the contents of the Led0Current register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadLed0CurrentAsync(CancellationToken cancellationToken = default) { @@ -1863,14 +1863,14 @@ public async Task ReadLed0CurrentAsync(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the Led0Current register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedLed0CurrentAsync(CancellationToken cancellationToken = default) { @@ -1879,9 +1879,9 @@ public async Task> ReadTimestampedLed0CurrentAsync(Cancellatio } /// - /// Asynchronously writes a value to the Led0Current register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1893,14 +1893,14 @@ public async Task WriteLed0CurrentAsync(byte value, CancellationToken cancellati } /// - /// Asynchronously reads the contents of the Led1Current register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadLed1CurrentAsync(CancellationToken cancellationToken = default) { @@ -1909,14 +1909,14 @@ public async Task ReadLed1CurrentAsync(CancellationToken cancellationToken } /// - /// Asynchronously reads the timestamped contents of the Led1Current register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedLed1CurrentAsync(CancellationToken cancellationToken = default) { @@ -1925,9 +1925,9 @@ public async Task> ReadTimestampedLed1CurrentAsync(Cancellatio } /// - /// Asynchronously writes a value to the Led1Current register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1939,14 +1939,14 @@ public async Task WriteLed1CurrentAsync(byte value, CancellationToken cancellati } /// - /// Asynchronously reads the contents of the Led0MaxCurrent register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadLed0MaxCurrentAsync(CancellationToken cancellationToken = default) { @@ -1955,14 +1955,14 @@ public async Task ReadLed0MaxCurrentAsync(CancellationToken cancellationTo } /// - /// Asynchronously reads the timestamped contents of the Led0MaxCurrent register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedLed0MaxCurrentAsync(CancellationToken cancellationToken = default) { @@ -1971,9 +1971,9 @@ public async Task> ReadTimestampedLed0MaxCurrentAsync(Cancella } /// - /// Asynchronously writes a value to the Led0MaxCurrent register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -1985,14 +1985,14 @@ public async Task WriteLed0MaxCurrentAsync(byte value, CancellationToken cancell } /// - /// Asynchronously reads the contents of the Led1MaxCurrent register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadLed1MaxCurrentAsync(CancellationToken cancellationToken = default) { @@ -2001,14 +2001,14 @@ public async Task ReadLed1MaxCurrentAsync(CancellationToken cancellationTo } /// - /// Asynchronously reads the timestamped contents of the Led1MaxCurrent register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedLed1MaxCurrentAsync(CancellationToken cancellationToken = default) { @@ -2017,9 +2017,9 @@ public async Task> ReadTimestampedLed1MaxCurrentAsync(Cancella } /// - /// Asynchronously writes a value to the Led1MaxCurrent register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2031,14 +2031,14 @@ public async Task WriteLed1MaxCurrentAsync(byte value, CancellationToken cancell } /// - /// Asynchronously reads the contents of the EventEnable register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadEventEnableAsync(CancellationToken cancellationToken = default) { @@ -2047,14 +2047,14 @@ public async Task ReadEventEnableAsync(CancellationToken cancellationTok } /// - /// Asynchronously reads the timestamped contents of the EventEnable register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedEventEnableAsync(CancellationToken cancellationToken = default) { @@ -2063,9 +2063,9 @@ public async Task> ReadTimestampedEventEnableAsync(Cancellat } /// - /// Asynchronously writes a value to the EventEnable register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2077,14 +2077,14 @@ public async Task WriteEventEnableAsync(Events value, CancellationToken cancella } /// - /// Asynchronously reads the contents of the StartCameras register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadStartCamerasAsync(CancellationToken cancellationToken = default) { @@ -2093,14 +2093,14 @@ public async Task ReadStartCamerasAsync(CancellationToken cancell } /// - /// Asynchronously reads the timestamped contents of the StartCameras register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedStartCamerasAsync(CancellationToken cancellationToken = default) { @@ -2109,9 +2109,9 @@ public async Task> ReadTimestampedStartCamerasAsync(C } /// - /// Asynchronously writes a value to the StartCameras register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2123,14 +2123,14 @@ public async Task WriteStartCamerasAsync(CameraOutputs value, CancellationToken } /// - /// Asynchronously reads the contents of the StopCameras register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadStopCamerasAsync(CancellationToken cancellationToken = default) { @@ -2139,14 +2139,14 @@ public async Task ReadStopCamerasAsync(CancellationToken cancella } /// - /// Asynchronously reads the timestamped contents of the StopCameras register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedStopCamerasAsync(CancellationToken cancellationToken = default) { @@ -2155,9 +2155,9 @@ public async Task> ReadTimestampedStopCamerasAsync(Ca } /// - /// Asynchronously writes a value to the StopCameras register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2169,14 +2169,14 @@ public async Task WriteStopCamerasAsync(CameraOutputs value, CancellationToken c } /// - /// Asynchronously reads the contents of the EnableServos register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadEnableServosAsync(CancellationToken cancellationToken = default) { @@ -2185,14 +2185,14 @@ public async Task ReadEnableServosAsync(CancellationToken cancella } /// - /// Asynchronously reads the timestamped contents of the EnableServos register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedEnableServosAsync(CancellationToken cancellationToken = default) { @@ -2201,9 +2201,9 @@ public async Task> ReadTimestampedEnableServosAsync(Ca } /// - /// Asynchronously writes a value to the EnableServos register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2215,14 +2215,14 @@ public async Task WriteEnableServosAsync(ServoOutputs value, CancellationToken c } /// - /// Asynchronously reads the contents of the DisableServos register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadDisableServosAsync(CancellationToken cancellationToken = default) { @@ -2231,14 +2231,14 @@ public async Task ReadDisableServosAsync(CancellationToken cancell } /// - /// Asynchronously reads the timestamped contents of the DisableServos register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedDisableServosAsync(CancellationToken cancellationToken = default) { @@ -2247,9 +2247,9 @@ public async Task> ReadTimestampedDisableServosAsync(C } /// - /// Asynchronously writes a value to the DisableServos register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2261,14 +2261,14 @@ public async Task WriteDisableServosAsync(ServoOutputs value, CancellationToken } /// - /// Asynchronously reads the contents of the EnableEncoders register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadEnableEncodersAsync(CancellationToken cancellationToken = default) { @@ -2277,14 +2277,14 @@ public async Task ReadEnableEncodersAsync(CancellationToken cance } /// - /// Asynchronously reads the timestamped contents of the EnableEncoders register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedEnableEncodersAsync(CancellationToken cancellationToken = default) { @@ -2293,9 +2293,9 @@ public async Task> ReadTimestampedEnableEncodersAsync } /// - /// Asynchronously writes a value to the EnableEncoders register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2307,60 +2307,60 @@ public async Task WriteEnableEncodersAsync(EncoderInputs value, CancellationToke } /// - /// Asynchronously reads the contents of the EncoderMode register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// - public async Task ReadEncoderModeAsync(CancellationToken cancellationToken = default) + public async Task ReadEncoderModeAsync(CancellationToken cancellationToken = default) { var reply = await CommandAsync(HarpCommand.ReadByte(EncoderMode.Address), cancellationToken); return EncoderMode.GetPayload(reply); } /// - /// Asynchronously reads the timestamped contents of the EncoderMode register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// - public async Task> ReadTimestampedEncoderModeAsync(CancellationToken cancellationToken = default) + public async Task> ReadTimestampedEncoderModeAsync(CancellationToken cancellationToken = default) { var reply = await CommandAsync(HarpCommand.ReadByte(EncoderMode.Address), cancellationToken); return EncoderMode.GetTimestampedPayload(reply); } /// - /// Asynchronously writes a value to the EncoderMode register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// /// The task object representing the asynchronous write operation. - public async Task WriteEncoderModeAsync(EncoderModeConfig value, CancellationToken cancellationToken = default) + public async Task WriteEncoderModeAsync(EncoderModeMask value, CancellationToken cancellationToken = default) { var request = EncoderMode.FromPayload(MessageType.Write, value); await CommandAsync(request, cancellationToken); } /// - /// Asynchronously reads the contents of the Camera0Frame register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadCamera0FrameAsync(CancellationToken cancellationToken = default) { @@ -2369,14 +2369,14 @@ public async Task ReadCamera0FrameAsync(CancellationToken cancell } /// - /// Asynchronously reads the timestamped contents of the Camera0Frame register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedCamera0FrameAsync(CancellationToken cancellationToken = default) { @@ -2385,14 +2385,14 @@ public async Task> ReadTimestampedCamera0FrameAsync(C } /// - /// Asynchronously reads the contents of the Camera0Frequency register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadCamera0FrequencyAsync(CancellationToken cancellationToken = default) { @@ -2401,14 +2401,14 @@ public async Task ReadCamera0FrequencyAsync(CancellationToken cancellati } /// - /// Asynchronously reads the timestamped contents of the Camera0Frequency register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedCamera0FrequencyAsync(CancellationToken cancellationToken = default) { @@ -2417,9 +2417,9 @@ public async Task> ReadTimestampedCamera0FrequencyAsync(Canc } /// - /// Asynchronously writes a value to the Camera0Frequency register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2431,14 +2431,14 @@ public async Task WriteCamera0FrequencyAsync(ushort value, CancellationToken can } /// - /// Asynchronously reads the contents of the Camera1Frame register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadCamera1FrameAsync(CancellationToken cancellationToken = default) { @@ -2447,14 +2447,14 @@ public async Task ReadCamera1FrameAsync(CancellationToken cancell } /// - /// Asynchronously reads the timestamped contents of the Camera1Frame register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedCamera1FrameAsync(CancellationToken cancellationToken = default) { @@ -2463,14 +2463,14 @@ public async Task> ReadTimestampedCamera1FrameAsync(C } /// - /// Asynchronously reads the contents of the Camera1Frequency register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadCamera1FrequencyAsync(CancellationToken cancellationToken = default) { @@ -2479,14 +2479,14 @@ public async Task ReadCamera1FrequencyAsync(CancellationToken cancellati } /// - /// Asynchronously reads the timestamped contents of the Camera1Frequency register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedCamera1FrequencyAsync(CancellationToken cancellationToken = default) { @@ -2495,9 +2495,9 @@ public async Task> ReadTimestampedCamera1FrequencyAsync(Canc } /// - /// Asynchronously writes a value to the Camera1Frequency register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2509,14 +2509,14 @@ public async Task WriteCamera1FrequencyAsync(ushort value, CancellationToken can } /// - /// Asynchronously reads the contents of the ServoMotor2Period register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadServoMotor2PeriodAsync(CancellationToken cancellationToken = default) { @@ -2525,14 +2525,14 @@ public async Task ReadServoMotor2PeriodAsync(CancellationToken cancellat } /// - /// Asynchronously reads the timestamped contents of the ServoMotor2Period register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedServoMotor2PeriodAsync(CancellationToken cancellationToken = default) { @@ -2541,9 +2541,9 @@ public async Task> ReadTimestampedServoMotor2PeriodAsync(Can } /// - /// Asynchronously writes a value to the ServoMotor2Period register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2555,14 +2555,14 @@ public async Task WriteServoMotor2PeriodAsync(ushort value, CancellationToken ca } /// - /// Asynchronously reads the contents of the ServoMotor2Pulse register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadServoMotor2PulseAsync(CancellationToken cancellationToken = default) { @@ -2571,14 +2571,14 @@ public async Task ReadServoMotor2PulseAsync(CancellationToken cancellati } /// - /// Asynchronously reads the timestamped contents of the ServoMotor2Pulse register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedServoMotor2PulseAsync(CancellationToken cancellationToken = default) { @@ -2587,9 +2587,9 @@ public async Task> ReadTimestampedServoMotor2PulseAsync(Canc } /// - /// Asynchronously writes a value to the ServoMotor2Pulse register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2601,14 +2601,14 @@ public async Task WriteServoMotor2PulseAsync(ushort value, CancellationToken can } /// - /// Asynchronously reads the contents of the ServoMotor3Period register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadServoMotor3PeriodAsync(CancellationToken cancellationToken = default) { @@ -2617,14 +2617,14 @@ public async Task ReadServoMotor3PeriodAsync(CancellationToken cancellat } /// - /// Asynchronously reads the timestamped contents of the ServoMotor3Period register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedServoMotor3PeriodAsync(CancellationToken cancellationToken = default) { @@ -2633,9 +2633,9 @@ public async Task> ReadTimestampedServoMotor3PeriodAsync(Can } /// - /// Asynchronously writes a value to the ServoMotor3Period register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2647,14 +2647,14 @@ public async Task WriteServoMotor3PeriodAsync(ushort value, CancellationToken ca } /// - /// Asynchronously reads the contents of the ServoMotor3Pulse register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadServoMotor3PulseAsync(CancellationToken cancellationToken = default) { @@ -2663,14 +2663,14 @@ public async Task ReadServoMotor3PulseAsync(CancellationToken cancellati } /// - /// Asynchronously reads the timestamped contents of the ServoMotor3Pulse register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedServoMotor3PulseAsync(CancellationToken cancellationToken = default) { @@ -2679,9 +2679,9 @@ public async Task> ReadTimestampedServoMotor3PulseAsync(Canc } /// - /// Asynchronously writes a value to the ServoMotor3Pulse register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2693,14 +2693,14 @@ public async Task WriteServoMotor3PulseAsync(ushort value, CancellationToken can } /// - /// Asynchronously reads the contents of the EncoderReset register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadEncoderResetAsync(CancellationToken cancellationToken = default) { @@ -2709,14 +2709,14 @@ public async Task ReadEncoderResetAsync(CancellationToken cancell } /// - /// Asynchronously reads the timestamped contents of the EncoderReset register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedEncoderResetAsync(CancellationToken cancellationToken = default) { @@ -2725,9 +2725,9 @@ public async Task> ReadTimestampedEncoderResetAsync(C } /// - /// Asynchronously writes a value to the EncoderReset register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2739,60 +2739,60 @@ public async Task WriteEncoderResetAsync(EncoderInputs value, CancellationToken } /// - /// Asynchronously reads the contents of the EnableSerialTimestamp register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// - public async Task ReadEnableSerialTimestampAsync(CancellationToken cancellationToken = default) + public async Task ReadEnableSerialTimestampAsync(CancellationToken cancellationToken = default) { var reply = await CommandAsync(HarpCommand.ReadByte(EnableSerialTimestamp.Address), cancellationToken); return EnableSerialTimestamp.GetPayload(reply); } /// - /// Asynchronously reads the timestamped contents of the EnableSerialTimestamp register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// - public async Task> ReadTimestampedEnableSerialTimestampAsync(CancellationToken cancellationToken = default) + public async Task> ReadTimestampedEnableSerialTimestampAsync(CancellationToken cancellationToken = default) { var reply = await CommandAsync(HarpCommand.ReadByte(EnableSerialTimestamp.Address), cancellationToken); return EnableSerialTimestamp.GetTimestampedPayload(reply); } /// - /// Asynchronously writes a value to the EnableSerialTimestamp register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// /// The task object representing the asynchronous write operation. - public async Task WriteEnableSerialTimestampAsync(byte value, CancellationToken cancellationToken = default) + public async Task WriteEnableSerialTimestampAsync(SerialTimestampPorts value, CancellationToken cancellationToken = default) { var request = EnableSerialTimestamp.FromPayload(MessageType.Write, value); await CommandAsync(request, cancellationToken); } /// - /// Asynchronously reads the contents of the MimicPort0IR register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadMimicPort0IRAsync(CancellationToken cancellationToken = default) { @@ -2801,14 +2801,14 @@ public async Task ReadMimicPort0IRAsync(CancellationToken cancellat } /// - /// Asynchronously reads the timestamped contents of the MimicPort0IR register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedMimicPort0IRAsync(CancellationToken cancellationToken = default) { @@ -2817,9 +2817,9 @@ public async Task> ReadTimestampedMimicPort0IRAsync(Can } /// - /// Asynchronously writes a value to the MimicPort0IR register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2831,14 +2831,14 @@ public async Task WriteMimicPort0IRAsync(MimicOutput value, CancellationToken ca } /// - /// Asynchronously reads the contents of the MimicPort1IR register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadMimicPort1IRAsync(CancellationToken cancellationToken = default) { @@ -2847,14 +2847,14 @@ public async Task ReadMimicPort1IRAsync(CancellationToken cancellat } /// - /// Asynchronously reads the timestamped contents of the MimicPort1IR register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedMimicPort1IRAsync(CancellationToken cancellationToken = default) { @@ -2863,9 +2863,9 @@ public async Task> ReadTimestampedMimicPort1IRAsync(Can } /// - /// Asynchronously writes a value to the MimicPort1IR register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2877,14 +2877,14 @@ public async Task WriteMimicPort1IRAsync(MimicOutput value, CancellationToken ca } /// - /// Asynchronously reads the contents of the MimicPort2IR register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadMimicPort2IRAsync(CancellationToken cancellationToken = default) { @@ -2893,14 +2893,14 @@ public async Task ReadMimicPort2IRAsync(CancellationToken cancellat } /// - /// Asynchronously reads the timestamped contents of the MimicPort2IR register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedMimicPort2IRAsync(CancellationToken cancellationToken = default) { @@ -2909,9 +2909,9 @@ public async Task> ReadTimestampedMimicPort2IRAsync(Can } /// - /// Asynchronously writes a value to the MimicPort2IR register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2923,14 +2923,14 @@ public async Task WriteMimicPort2IRAsync(MimicOutput value, CancellationToken ca } /// - /// Asynchronously reads the contents of the MimicPort0Valve register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadMimicPort0ValveAsync(CancellationToken cancellationToken = default) { @@ -2939,14 +2939,14 @@ public async Task ReadMimicPort0ValveAsync(CancellationToken cancel } /// - /// Asynchronously reads the timestamped contents of the MimicPort0Valve register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedMimicPort0ValveAsync(CancellationToken cancellationToken = default) { @@ -2955,9 +2955,9 @@ public async Task> ReadTimestampedMimicPort0ValveAsync( } /// - /// Asynchronously writes a value to the MimicPort0Valve register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -2969,14 +2969,14 @@ public async Task WriteMimicPort0ValveAsync(MimicOutput value, CancellationToken } /// - /// Asynchronously reads the contents of the MimicPort1Valve register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadMimicPort1ValveAsync(CancellationToken cancellationToken = default) { @@ -2985,14 +2985,14 @@ public async Task ReadMimicPort1ValveAsync(CancellationToken cancel } /// - /// Asynchronously reads the timestamped contents of the MimicPort1Valve register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedMimicPort1ValveAsync(CancellationToken cancellationToken = default) { @@ -3001,9 +3001,9 @@ public async Task> ReadTimestampedMimicPort1ValveAsync( } /// - /// Asynchronously writes a value to the MimicPort1Valve register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -3015,14 +3015,14 @@ public async Task WriteMimicPort1ValveAsync(MimicOutput value, CancellationToken } /// - /// Asynchronously reads the contents of the MimicPort2Valve register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadMimicPort2ValveAsync(CancellationToken cancellationToken = default) { @@ -3031,14 +3031,14 @@ public async Task ReadMimicPort2ValveAsync(CancellationToken cancel } /// - /// Asynchronously reads the timestamped contents of the MimicPort2Valve register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedMimicPort2ValveAsync(CancellationToken cancellationToken = default) { @@ -3047,9 +3047,9 @@ public async Task> ReadTimestampedMimicPort2ValveAsync( } /// - /// Asynchronously writes a value to the MimicPort2Valve register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// @@ -3061,14 +3061,14 @@ public async Task WriteMimicPort2ValveAsync(MimicOutput value, CancellationToken } /// - /// Asynchronously reads the contents of the PokeInputFilter register. + /// Asynchronously reads the contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the register payload. /// public async Task ReadPokeInputFilterAsync(CancellationToken cancellationToken = default) { @@ -3077,14 +3077,14 @@ public async Task ReadPokeInputFilterAsync(CancellationToken cancellationT } /// - /// Asynchronously reads the timestamped contents of the PokeInputFilter register. + /// Asynchronously reads the timestamped contents of the register. /// /// /// A which can be used to cancel the operation. /// /// - /// A task that represents the asynchronous read operation. The - /// property contains the timestamped register payload. + /// A task that represents the asynchronous read operation. The task result contains + /// the timestamped register payload. /// public async Task> ReadTimestampedPokeInputFilterAsync(CancellationToken cancellationToken = default) { @@ -3093,9 +3093,9 @@ public async Task> ReadTimestampedPokeInputFilterAsync(Cancell } /// - /// Asynchronously writes a value to the PokeInputFilter register. + /// Asynchronously writes a value to the register. /// - /// The value to be stored in the register. + /// The value to write in the register. /// /// A which can be used to cancel the operation. /// diff --git a/Interface/Harp.Behavior/Device.Generated.cs b/Interface/Harp.Behavior/Device.Generated.cs index 1ac5554..d790aa4 100644 --- a/Interface/Harp.Behavior/Device.Generated.cs +++ b/Interface/Harp.Behavior/Device.Generated.cs @@ -191,6 +191,7 @@ public override IObservable> Process(IObse /// Represents an operator that writes the sequence of " messages /// to the standard Harp storage format. /// + [DefaultProperty(nameof(Path))] [Description("Writes the sequence of Behavior messages to the standard Harp storage format.")] public partial class DeviceDataWriter : Sink, INamedElement { @@ -5824,9 +5825,9 @@ public partial class EncoderMode /// /// A object representing the register message. /// A value representing the message payload. - public static EncoderModeConfig GetPayload(HarpMessage message) + public static EncoderModeMask GetPayload(HarpMessage message) { - return (EncoderModeConfig)message.GetPayloadByte(); + return (EncoderModeMask)message.GetPayloadByte(); } /// @@ -5834,10 +5835,10 @@ public static EncoderModeConfig GetPayload(HarpMessage message) /// /// A object representing the register message. /// A value representing the timestamped message payload. - public static Timestamped GetTimestampedPayload(HarpMessage message) + public static Timestamped GetTimestampedPayload(HarpMessage message) { var payload = message.GetTimestampedPayloadByte(); - return Timestamped.Create((EncoderModeConfig)payload.Value, payload.Seconds); + return Timestamped.Create((EncoderModeMask)payload.Value, payload.Seconds); } /// @@ -5849,7 +5850,7 @@ public static Timestamped GetTimestampedPayload(HarpMessage m /// A object for the register /// with the specified message type and payload. /// - public static HarpMessage FromPayload(MessageType messageType, EncoderModeConfig value) + public static HarpMessage FromPayload(MessageType messageType, EncoderModeMask value) { return HarpMessage.FromByte(Address, messageType, (byte)value); } @@ -5865,7 +5866,7 @@ public static HarpMessage FromPayload(MessageType messageType, EncoderModeConfig /// A object for the register /// with the specified message type, timestamp, and payload. /// - public static HarpMessage FromPayload(double timestamp, MessageType messageType, EncoderModeConfig value) + public static HarpMessage FromPayload(double timestamp, MessageType messageType, EncoderModeMask value) { return HarpMessage.FromByte(Address, timestamp, messageType, (byte)value); } @@ -5889,7 +5890,7 @@ public partial class TimestampedEncoderMode /// /// A object representing the register message. /// A value representing the timestamped message payload. - public static Timestamped GetPayload(HarpMessage message) + public static Timestamped GetPayload(HarpMessage message) { return EncoderMode.GetTimestampedPayload(message); } @@ -7162,9 +7163,9 @@ public partial class EnableSerialTimestamp /// /// A object representing the register message. /// A value representing the message payload. - public static byte GetPayload(HarpMessage message) + public static SerialTimestampPorts GetPayload(HarpMessage message) { - return message.GetPayloadByte(); + return (SerialTimestampPorts)message.GetPayloadByte(); } /// @@ -7172,9 +7173,10 @@ public static byte GetPayload(HarpMessage message) /// /// A object representing the register message. /// A value representing the timestamped message payload. - public static Timestamped GetTimestampedPayload(HarpMessage message) + public static Timestamped GetTimestampedPayload(HarpMessage message) { - return message.GetTimestampedPayloadByte(); + var payload = message.GetTimestampedPayloadByte(); + return Timestamped.Create((SerialTimestampPorts)payload.Value, payload.Seconds); } /// @@ -7186,9 +7188,9 @@ public static Timestamped GetTimestampedPayload(HarpMessage message) /// A object for the register /// with the specified message type and payload. /// - public static HarpMessage FromPayload(MessageType messageType, byte value) + public static HarpMessage FromPayload(MessageType messageType, SerialTimestampPorts value) { - return HarpMessage.FromByte(Address, messageType, value); + return HarpMessage.FromByte(Address, messageType, (byte)value); } /// @@ -7202,9 +7204,9 @@ public static HarpMessage FromPayload(MessageType messageType, byte value) /// A object for the register /// with the specified message type, timestamp, and payload. /// - public static HarpMessage FromPayload(double timestamp, MessageType messageType, byte value) + public static HarpMessage FromPayload(double timestamp, MessageType messageType, SerialTimestampPorts value) { - return HarpMessage.FromByte(Address, timestamp, messageType, value); + return HarpMessage.FromByte(Address, timestamp, messageType, (byte)value); } } @@ -7226,7 +7228,7 @@ public partial class TimestampedEnableSerialTimestamp /// /// A object representing the register message. /// A value representing the timestamped message payload. - public static Timestamped GetPayload(HarpMessage message) + public static Timestamped GetPayload(HarpMessage message) { return EnableSerialTimestamp.GetTimestampedPayload(message); } @@ -11091,13 +11093,13 @@ public partial class CreateEncoderModePayload /// Gets or sets the value that configures the operation mode of the quadrature encoders. /// [Description("The value that configures the operation mode of the quadrature encoders.")] - public EncoderModeConfig EncoderMode { get; set; } + public EncoderModeMask EncoderMode { get; set; } /// /// Creates a message payload for the EncoderMode register. /// /// The created message payload value. - public EncoderModeConfig GetPayload() + public EncoderModeMask GetPayload() { return EncoderMode; } @@ -11643,13 +11645,13 @@ public partial class CreateEnableSerialTimestampPayload /// Gets or sets the value that enables the timestamp for serial TX. /// [Description("The value that enables the timestamp for serial TX.")] - public byte EnableSerialTimestamp { get; set; } + public SerialTimestampPorts EnableSerialTimestamp { get; set; } /// /// Creates a message payload for the EnableSerialTimestamp register. /// /// The created message payload value. - public byte GetPayload() + public SerialTimestampPorts GetPayload() { return EnableSerialTimestamp; } @@ -12258,10 +12260,33 @@ public override string ToString() [Flags] public enum DigitalInputs : byte { + /// + /// Specifies that no flags are defined. + /// None = 0x0, + + /// + /// Port 0 digital input + /// + [Description("Port 0 digital input")] DIPort0 = 0x1, + + /// + /// Port 1 digital input + /// + [Description("Port 1 digital input")] DIPort1 = 0x2, + + /// + /// Port 2 digital input + /// + [Description("Port 2 digital input")] DIPort2 = 0x4, + + /// + /// Digital input DI3 + /// + [Description("Digital input DI3")] DI3 = 0x8 } @@ -12319,11 +12344,39 @@ public enum PwmOutputs : byte [Flags] public enum Events : byte { + /// + /// Specifies that no flags are defined. + /// None = 0x0, + + /// + /// Event from register DigitalInputState + /// + [Description("Event from register DigitalInputState")] PortDI = 0x1, + + /// + /// Event from register PortDIOStateEvent + /// + [Description("Event from register PortDIOStateEvent")] PortDIO = 0x2, + + /// + /// Event from register AnalogData + /// + [Description("Event from register AnalogData")] AnalogData = 0x4, + + /// + /// Event from register Camera0Frame + /// + [Description("Event from register Camera0Frame")] Camera0 = 0x8, + + /// + /// Event from register Camera1Frame + /// + [Description("Event from register Camera1Frame")] Camera1 = 0x10 } @@ -12333,8 +12386,21 @@ public enum Events : byte [Flags] public enum CameraOutputs : byte { + /// + /// Specifies that no flags are defined. + /// None = 0x0, + + /// + /// Camera on digital output 0 + /// + [Description("Camera on digital output 0")] CameraOutput0 = 0x1, + + /// + /// Camera on digital output 1 + /// + [Description("Camera on digital output 1")] CameraOutput1 = 0x2 } @@ -12344,8 +12410,21 @@ public enum CameraOutputs : byte [Flags] public enum ServoOutputs : byte { + /// + /// Specifies that no flags are defined. + /// None = 0x0, + + /// + /// Servo on digital output 2 + /// + [Description("Servo on digital output 2")] ServoOutput2 = 0x4, + + /// + /// Servo on digital output 3 + /// + [Description("Servo on digital output 3")] ServoOutput3 = 0x8 } @@ -12355,7 +12434,15 @@ public enum ServoOutputs : byte [Flags] public enum EncoderInputs : byte { + /// + /// Specifies that no flags are defined. + /// None = 0x0, + + /// + /// Encoder on port 2 + /// + [Description("Encoder on port 2")] EncoderPort2 = 0x4 } @@ -12365,31 +12452,197 @@ public enum EncoderInputs : byte [Flags] public enum FrameAcquired : byte { + /// + /// Specifies that no flags are defined. + /// None = 0x0, + + /// + /// Camera frame was triggered + /// + [Description("Camera frame was triggered")] FrameAcquired = 0x1 } + /// + /// Specifies available timestamp TX ports. + /// + [Flags] + public enum SerialTimestampPorts : byte + { + /// + /// Specifies that no flags are defined. + /// + None = 0x0, + + /// + /// Enable the serial timestamp TX on Port 2 + /// + [Description("Enable the serial timestamp TX on Port 2")] + TimestampPort2 = 0x4 + } + /// /// Specifies the target IO on which to mimic the specified register. /// public enum MimicOutput : byte { None = 0, + + /// + /// Is reflected on DIO0 + /// + [Description("Is reflected on DIO0")] DIO0 = 1, + + /// + /// Is reflected on DIO1 + /// + [Description("Is reflected on DIO1")] DIO1 = 2, + + /// + /// Is reflected on DIO2 + /// + [Description("Is reflected on DIO2")] DIO2 = 3, + + /// + /// Is reflected on DO0 + /// + [Description("Is reflected on DO0")] DO0 = 4, + + /// + /// Is reflected on DO1 + /// + [Description("Is reflected on DO1")] DO1 = 5, + + /// + /// Is reflected on DO2 + /// + [Description("Is reflected on DO2")] DO2 = 6, + + /// + /// Is reflected on DO3 + /// + [Description("Is reflected on DO3")] DO3 = 7 } /// /// Specifies the type of reading made from the quadrature encoder. /// - public enum EncoderModeConfig : byte + public enum EncoderModeMask : byte { Position = 0, Displacement = 1 } + + internal static partial class PayloadMarshal + { + internal static T[] GetSubArray(T[] array, int offset, int count) + { + var result = new T[count]; + Array.Copy(array, offset, result, 0, count); + return result; + } + + internal static byte ReadByte(ArraySegment segment) => segment.Array[segment.Offset]; + + internal static sbyte ReadSByte(ArraySegment segment) => (sbyte)segment.Array[segment.Offset]; + + internal static ushort ReadUInt16(ArraySegment segment) => BitConverter.ToUInt16(segment.Array, segment.Offset); + + internal static short ReadInt16(ArraySegment segment) => BitConverter.ToInt16(segment.Array, segment.Offset); + + internal static uint ReadUInt32(ArraySegment segment) => BitConverter.ToUInt32(segment.Array, segment.Offset); + + internal static int ReadInt32(ArraySegment segment) => BitConverter.ToInt32(segment.Array, segment.Offset); + + internal static ulong ReadUInt64(ArraySegment segment) => BitConverter.ToUInt64(segment.Array, segment.Offset); + + internal static long ReadInt64(ArraySegment segment) => BitConverter.ToInt64(segment.Array, segment.Offset); + + internal static float ReadSingle(ArraySegment segment) => BitConverter.ToSingle(segment.Array, segment.Offset); + + internal static string ReadUtf8String(ArraySegment segment) + { + var count = Array.IndexOf(segment.Array, (byte)0, segment.Offset, segment.Count) - segment.Offset; + return System.Text.Encoding.UTF8.GetString(segment.Array, segment.Offset, count < 0 ? segment.Count : count); + } + + internal static void Write(ArraySegment segment, byte value) => segment.Array[segment.Offset] = value; + + internal static void Write(ArraySegment segment, sbyte value) => segment.Array[segment.Offset] = (byte)value; + + internal static void Write(ArraySegment segment, ushort value) + { + segment.Array[segment.Offset] = (byte)value; + segment.Array[segment.Offset + 1] = (byte)(value >> 8); + } + + internal static void Write(ArraySegment segment, short value) + { + segment.Array[segment.Offset] = (byte)value; + segment.Array[segment.Offset + 1] = (byte)(value >> 8); + } + + internal static void Write(ArraySegment segment, uint value) + { + segment.Array[segment.Offset] = (byte)value; + segment.Array[segment.Offset + 1] = (byte)(value >> 8); + segment.Array[segment.Offset + 2] = (byte)(value >> 16); + segment.Array[segment.Offset + 3] = (byte)(value >> 24); + } + + internal static void Write(ArraySegment segment, int value) + { + segment.Array[segment.Offset] = (byte)value; + segment.Array[segment.Offset + 1] = (byte)(value >> 8); + segment.Array[segment.Offset + 2] = (byte)(value >> 16); + segment.Array[segment.Offset + 3] = (byte)(value >> 24); + } + + internal static void Write(ArraySegment segment, ulong value) + { + segment.Array[segment.Offset] = (byte)value; + segment.Array[segment.Offset + 1] = (byte)(value >> 8); + segment.Array[segment.Offset + 2] = (byte)(value >> 16); + segment.Array[segment.Offset + 3] = (byte)(value >> 24); + segment.Array[segment.Offset + 4] = (byte)(value >> 32); + segment.Array[segment.Offset + 5] = (byte)(value >> 40); + segment.Array[segment.Offset + 6] = (byte)(value >> 48); + segment.Array[segment.Offset + 7] = (byte)(value >> 56); + } + + internal static void Write(ArraySegment segment, long value) + { + segment.Array[segment.Offset] = (byte)value; + segment.Array[segment.Offset + 1] = (byte)(value >> 8); + segment.Array[segment.Offset + 2] = (byte)(value >> 16); + segment.Array[segment.Offset + 3] = (byte)(value >> 24); + segment.Array[segment.Offset + 4] = (byte)(value >> 32); + segment.Array[segment.Offset + 5] = (byte)(value >> 40); + segment.Array[segment.Offset + 6] = (byte)(value >> 48); + segment.Array[segment.Offset + 7] = (byte)(value >> 56); + } + + internal static unsafe void Write(ArraySegment segment, float value) => Write(segment, *(int*)&value); + + internal static unsafe void Write(ArraySegment segment, string value) => + System.Text.Encoding.UTF8.GetBytes(value, 0, Math.Min(value.Length, segment.Count), segment.Array, segment.Offset); + + internal static void Write(ArraySegment segment, T[] values) where T : unmanaged + { + Buffer.BlockCopy(values, 0, segment.Array, segment.Offset, segment.Count); + } + + internal static void Write(ArraySegment segment, T[] values) + { + Array.Copy(values, 0, segment.Array, segment.Offset, segment.Count); + } + } } diff --git a/Interface/Harp.Behavior/Harp.Behavior.csproj b/Interface/Harp.Behavior/Harp.Behavior.csproj index 04f6642..9320794 100644 --- a/Interface/Harp.Behavior/Harp.Behavior.csproj +++ b/Interface/Harp.Behavior/Harp.Behavior.csproj @@ -16,6 +16,7 @@ README.md ..\bin\$(Configuration) net462;netstandard2.0 + true 9.0 diff --git a/device.yml b/device.yml index 3790aff..c17dfaa 100644 --- a/device.yml +++ b/device.yml @@ -3,7 +3,7 @@ # yaml-language-server: $schema=https://harp-tech.org/draft-02/schema/device.json device: Behavior whoAmI: 1216 -firmwareVersion: "3.3" +firmwareVersion: "3.4" hardwareTargets: "2.0" registers: DigitalInputState: @@ -280,7 +280,7 @@ registers: address: 83 type: U8 access: Write - maskType: EncoderModeConfig + maskType: EncoderModeMask description: Configures the operation mode of the quadrature encoders. Reserved2: <<: *reserved @@ -386,6 +386,7 @@ registers: address: 110 type: U8 access: Write + maskType: SerialTimestampPorts description: Enables the timestamp for serial TX. MimicPort0IR: &mimic address: 111 @@ -437,10 +438,18 @@ bitMasks: DigitalInputs: description: Specifies the state of port digital input lines. bits: - DIPort0: 0x1 - DIPort1: 0x2 - DIPort2: 0x4 - DI3: 0x8 + DIPort0: + value: 0x1 + description: Port 0 digital input + DIPort1: + value: 0x2 + description: Port 1 digital input + DIPort2: + value: 0x4 + description: Port 2 digital input + DI3: + value: 0x8 + description: Digital input DI3 DigitalOutputs: description: Specifies the state of port digital output lines. bits: @@ -474,42 +483,84 @@ bitMasks: Events: description: Specifies the active events in the device. bits: - PortDI: 0x1 - PortDIO: 0x2 - AnalogData: 0x4 - Camera0: 0x8 - Camera1: 0x10 + PortDI: + value: 0x1 + description: Event from register DigitalInputState + PortDIO: + value: 0x2 + description: Event from register PortDIOStateEvent + AnalogData: + value: 0x4 + description: Event from register AnalogData + Camera0: + value: 0x8 + description: Event from register Camera0Frame + Camera1: + value: 0x10 + description: Event from register Camera1Frame CameraOutputs: description: Specifies camera output enable bits. bits: - CameraOutput0: 0x1 - CameraOutput1: 0x2 + CameraOutput0: + value: 0x1 + description: Camera on digital output 0 + CameraOutput1: + value: 0x2 + description: Camera on digital output 1 ServoOutputs: description: Specifies servo output enable bits. bits: - ServoOutput2: 0x4 - ServoOutput3: 0x8 + ServoOutput2: + value: 0x4 + description: Servo on digital output 2 + ServoOutput3: + value: 0x8 + description: Servo on digital output 3 EncoderInputs: description: Specifies quadrature counter enable bits. bits: - EncoderPort2: 0x4 + EncoderPort2: + value: 0x4 + description: Encoder on port 2 FrameAcquired: description: Specifies that camera frame was acquired. bits: - FrameAcquired: 0x1 + FrameAcquired: + value: 0x1 + description: Camera frame was triggered + SerialTimestampPorts: + description: Specifies available timestamp TX ports. + bits: + TimestampPort2: + value: 0x4 + description: Enable the serial timestamp TX on Port 2 groupMasks: MimicOutput: description: Specifies the target IO on which to mimic the specified register. values: None: 0 - DIO0: 1 - DIO1: 2 - DIO2: 3 - DO0: 4 - DO1: 5 - DO2: 6 - DO3: 7 - EncoderModeConfig: + DIO0: + value: 1 + description: Is reflected on DIO0 + DIO1: + value: 2 + description: Is reflected on DIO1 + DIO2: + value: 3 + description: Is reflected on DIO2 + DO0: + value: 4 + description: Is reflected on DO0 + DO1: + value: 5 + description: Is reflected on DO1 + DO2: + value: 6 + description: Is reflected on DO2 + DO3: + value: 7 + description: Is reflected on DO3 + EncoderModeMask: description: Specifies the type of reading made from the quadrature encoder. values: Position: 0