+ int8_t r = usb_rawhid_recv(read_buffer, 0);
+ if (r>0)
+ {
+ if (read_buffer[0]=='b') //begin capture
+ capture=1;
+ else if (read_buffer[0]=='e') //end capture
+ capture=0;
+ else if (read_buffer[0]=='f') //fill send buffer
+ {
+ int8_t byte_rem = r-1;
+ while(byte_rem && rf_send_buffer_len<RF_SEND_BUFFER_LEN_MAX)
+ {
+ rf_send_buffer[rf_send_buffer_len]=read_buffer[r-byte_rem];
+ rf_send_buffer_len++;
+ byte_rem--;
+ }
+ }
+ else if (read_buffer[0]=='c') // clear send buffer
+ {
+ rf_send_buffer_len=0;
+ }
+ else if (read_buffer[0]=='s') //send
+ {
+ capture=0;
+ if (r>2)
+ rf_send_reload=rf_send_buffer_len*8-read_buffer[2]; // substract bit offset
+ else
+ rf_send_reload=rf_send_buffer_len*8;
+ rf_send_reload_count=read_buffer[1];
+ }
+ }