clear frequency ranges before adding new ones

This commit is contained in:
Michael Ossmann
2021-12-12 13:25:44 -07:00
parent 66de65e6b4
commit d0c0270b9c
3 changed files with 7 additions and 0 deletions

View File

@ -294,6 +294,11 @@ uint8_t operacake_add_range(uint16_t freq_min, uint16_t freq_max, uint8_t port)
return 0;
}
void operacake_clear_ranges(void)
{
range_idx = 0;
}
#define FREQ_ONE_MHZ (1000000ull)
uint8_t operacake_set_range(uint32_t freq_mhz) {

View File

@ -50,6 +50,7 @@ uint8_t operacake_get_mode(uint8_t address);
uint8_t operacake_set_ports(uint8_t address, uint8_t PA, uint8_t PB);
uint8_t operacake_add_range(uint16_t freq_min, uint16_t freq_max, uint8_t port);
uint8_t operacake_set_range(uint32_t freq_mhz);
void operacake_clear_ranges(void);
uint16_t gpio_test(uint8_t address);
#ifdef __cplusplus

View File

@ -65,6 +65,7 @@ usb_request_status_t usb_vendor_request_operacake_set_ranges(
if((num_ranges == 0) || (num_ranges > MAX_OPERACAKE_RANGES)) {
return USB_REQUEST_STATUS_STALL;
}
operacake_clear_ranges();
usb_transfer_schedule_block(endpoint->out, &data,
endpoint->setup.length, NULL, NULL);
} else if (stage == USB_TRANSFER_STAGE_DATA) {