FlightAxis::FlightAxis(const char *home_str, const char *frame_str) : Aircraft(home_str, frame_str) { use_time_sync = false; rate_hz = 250 / target_speedup; heli_demix = strstr(frame_str, "helidemix") != nullptr; rev4_servos = strstr(frame_str, "rev4") != nullptr; const char *colon = strchr(frame_str, ':'); if (colon) { controller_ip = colon+1; } for (uint8_t i=0; i<ARRAY_SIZE(sim_defaults); i++) { AP_Param::set_default_by_name(sim_defaults[i].name, sim_defaults[i].value); if (sim_defaults[i].save) { enum ap_var_type ptype; AP_Param *p = AP_Param::find(sim_defaults[i].name, &ptype); if (!p->configured()) { p->save(); } } } /* Create the thread that will be waiting for data from FlightAxis */ mutex = hal.util->new_semaphore(); int ret = pthread_create(&thread, NULL, update_thread, this); if (ret != 0) { AP_HAL::panic("SIM_FlightAxis: failed to create thread"); } }
Morse::Morse(const char *home_str, const char *frame_str) : Aircraft(home_str, frame_str) { char *saveptr = nullptr; char *s = strdup(frame_str); char *frame_option = strtok_r(s, ":", &saveptr); char *args1 = strtok_r(nullptr, ":", &saveptr); char *args2 = strtok_r(nullptr, ":", &saveptr); char *args3 = strtok_r(nullptr, ":", &saveptr); /* allow setting of IP, sensors port and control port format morse:IPADDRESS:SENSORS_PORT:CONTROL_PORT */ if (args1) { morse_ip = args1; } if (args2) { morse_sensors_port = atoi(args2); morse_control_port = morse_sensors_port+1; } if (args3) { morse_control_port = atoi(args3); } if (strstr(frame_option, "-rover")) { output_type = OUTPUT_ROVER; } else if (strstr(frame_option, "-quad")) { output_type = OUTPUT_QUAD; } else if (strstr(frame_option, "-pwm")) { output_type = OUTPUT_PWM; } else { // default to rover output_type = OUTPUT_ROVER; } for (uint8_t i=0; i<ARRAY_SIZE(sim_defaults); i++) { AP_Param::set_default_by_name(sim_defaults[i].name, sim_defaults[i].value); if (sim_defaults[i].save) { enum ap_var_type ptype; AP_Param *p = AP_Param::find(sim_defaults[i].name, &ptype); if (!p->configured()) { p->save(); } } } printf("Started Morse with %s:%u:%u type %u\n", morse_ip, morse_sensors_port, morse_control_port, (unsigned)output_type); }