|
|
|
@ -102,4 +102,110 @@ void Copter::zr_SuperSlowLoop(){
@@ -102,4 +102,110 @@ void Copter::zr_SuperSlowLoop(){
|
|
|
|
|
// flow_measure.flow_auto_measure(flow_start_sw,flow_index_sw, real_alt, measure_time);
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void Copter::control_serial_test() |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
uint8_t select_power = g.zr_send_type; |
|
|
|
|
if(select_power == 0) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
const uint8_t start_cmd[] = "ATS108?\n"; |
|
|
|
|
const uint8_t power_100mw[] = "ATS108=20\n"; |
|
|
|
|
const uint8_t power_200mw[] = "ATS108=23\n"; |
|
|
|
|
const uint8_t power_320mw[] = "ATS108=25\n"; |
|
|
|
|
const uint8_t power_500mw[] = "ATS108=27\n"; |
|
|
|
|
const uint8_t power_1w[] = "ATS108=30\n"; |
|
|
|
|
const uint8_t write_cmd[] = "AT&W\n"; |
|
|
|
|
uint8_t power_s[] = " "; |
|
|
|
|
uint8_t read_s[50] = ""; |
|
|
|
|
static uint8_t last_step; |
|
|
|
|
switch (select_power) |
|
|
|
|
{ |
|
|
|
|
case 1: |
|
|
|
|
memcpy(power_s,power_100mw,11); |
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
memcpy(power_s,power_200mw,11); |
|
|
|
|
break; |
|
|
|
|
case 3: |
|
|
|
|
memcpy(power_s,power_320mw,11); |
|
|
|
|
break; |
|
|
|
|
case 4: |
|
|
|
|
memcpy(power_s,power_500mw,11); |
|
|
|
|
break; |
|
|
|
|
case 5: |
|
|
|
|
memcpy(power_s,power_1w,11); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
// const uint8_t power_select[] = power_s;
|
|
|
|
|
AP_HAL::UARTDriver *_uart; |
|
|
|
|
uint32_t nbytes; |
|
|
|
|
static uint8_t read_len; |
|
|
|
|
|
|
|
|
|
_uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Serial_Set,0); |
|
|
|
|
if (_uart == nullptr) { |
|
|
|
|
|
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO,"NOTICE: control_serial_test serial not set"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
nbytes = _uart->available();
|
|
|
|
|
|
|
|
|
|
while(nbytes-->0) |
|
|
|
|
{ |
|
|
|
|
uint8_t temp = _uart->read(); |
|
|
|
|
read_s[read_len] = temp; |
|
|
|
|
read_len++; |
|
|
|
|
// gcs().send_text(MAV_SEVERITY_INFO,"%c",temp);
|
|
|
|
|
} |
|
|
|
|
if(read_len > 49){ |
|
|
|
|
read_len = 0; |
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO,"read:%s",read_s); |
|
|
|
|
} |
|
|
|
|
if(read_len > 0){ |
|
|
|
|
static uint8_t cnt = 0; |
|
|
|
|
cnt++; |
|
|
|
|
if(cnt > 10) |
|
|
|
|
{ |
|
|
|
|
read_len = 0; |
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO,"read cnt:%s",read_s); |
|
|
|
|
cnt = 0; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
uint8_t prt[] = "get new serial data"; |
|
|
|
|
if(last_step != serial_send_step ){ |
|
|
|
|
switch (serial_send_step) |
|
|
|
|
{ |
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO,"serial:%s",prt); |
|
|
|
|
case 0: |
|
|
|
|
/* code */ |
|
|
|
|
break; |
|
|
|
|
case 1: |
|
|
|
|
|
|
|
|
|
if (_uart->txspace() > sizeof(start_cmd)) { |
|
|
|
|
_uart->write(start_cmd, sizeof(start_cmd)); |
|
|
|
|
} |
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO,"NOTICE: start_cmd"); |
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
if (_uart->txspace() > sizeof(power_s)) { |
|
|
|
|
_uart->write(power_s, sizeof(power_s)); |
|
|
|
|
} |
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO,"NOTICE: power_s:%d",select_power); |
|
|
|
|
if (_uart->txspace() > sizeof(write_cmd)) { |
|
|
|
|
_uart->write(write_cmd, sizeof(write_cmd)); |
|
|
|
|
} |
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO,"NOTICE:----- set ok"); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
last_step = serial_send_step; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |