SITL: fixed FDM UDP socket for JSBSim

needs to be uppercase for new versions
also improved debug output
This commit is contained in:
Andrew Tridgell 2018-12-17 17:42:17 +11:00
parent 6bf40b74b1
commit 28a12224c3
1 changed files with 12 additions and 11 deletions

View File

@ -60,6 +60,11 @@ JSBSim::JSBSim(const char *home_str, const char *frame_str) :
if (model_name != nullptr) { if (model_name != nullptr) {
jsbsim_model = model_name + 1; jsbsim_model = model_name + 1;
} }
control_port = 5505 + instance*10;
fdm_port = 5504 + instance*10;
printf("JSBSim backend started: control_port=%u fdm_port=%u\n",
control_port, fdm_port);
} }
/* /*
@ -70,12 +75,13 @@ bool JSBSim::create_templates(void)
if (created_templates) { if (created_templates) {
return true; return true;
} }
control_port = 5505 + instance*10;
fdm_port = 5504 + instance*10;
asprintf(&jsbsim_script, "%s/jsbsim_start_%u.xml", autotest_dir, instance); asprintf(&jsbsim_script, "%s/jsbsim_start_%u.xml", autotest_dir, instance);
asprintf(&jsbsim_fgout, "%s/jsbsim_fgout_%u.xml", autotest_dir, instance); asprintf(&jsbsim_fgout, "%s/jsbsim_fgout_%u.xml", autotest_dir, instance);
printf("JSBSim_script: '%s'\n", jsbsim_script);
printf("JSBSim_fgout: '%s'\n", jsbsim_fgout);
FILE *f = fopen(jsbsim_script, "w"); FILE *f = fopen(jsbsim_script, "w");
if (f == nullptr) { if (f == nullptr) {
AP_HAL::panic("Unable to create jsbsim script %s", jsbsim_script); AP_HAL::panic("Unable to create jsbsim script %s", jsbsim_script);
@ -126,12 +132,15 @@ bool JSBSim::create_templates(void)
AP_HAL::panic("Unable to create jsbsim fgout script %s", jsbsim_fgout); AP_HAL::panic("Unable to create jsbsim fgout script %s", jsbsim_fgout);
} }
fprintf(f, "<?xml version=\"1.0\"?>\n" fprintf(f, "<?xml version=\"1.0\"?>\n"
"<output name=\"127.0.0.1\" type=\"FLIGHTGEAR\" port=\"%u\" protocol=\"udp\" rate=\"1000\"/>\n", "<output name=\"127.0.0.1\" type=\"FLIGHTGEAR\" port=\"%u\" protocol=\"UDP\" rate=\"1000\"/>\n",
fdm_port); fdm_port);
fclose(f); fclose(f);
char *jsbsim_reset; char *jsbsim_reset;
asprintf(&jsbsim_reset, "%s/aircraft/%s/reset.xml", autotest_dir, jsbsim_model); asprintf(&jsbsim_reset, "%s/aircraft/%s/reset.xml", autotest_dir, jsbsim_model);
printf("JSBSim_reset: '%s'\n", jsbsim_reset);
f = fopen(jsbsim_reset, "w"); f = fopen(jsbsim_reset, "w");
if (f == nullptr) { if (f == nullptr) {
AP_HAL::panic("Unable to create jsbsim reset script %s", jsbsim_reset); AP_HAL::panic("Unable to create jsbsim reset script %s", jsbsim_reset);
@ -439,14 +448,6 @@ void JSBSim::drain_control_socket()
ssize_t received; ssize_t received;
do { do {
received = sock_control.recv(buf, buflen, 0); received = sock_control.recv(buf, buflen, 0);
if (received < 0) {
if (errno != EAGAIN && errno != EWOULDBLOCK) {
fprintf(stderr, "error recv on control socket: %s",
strerror(errno));
}
} else {
// fprintf(stderr, "received from control socket: %s\n", buf);
}
} while (received > 0); } while (received > 0);
} }
/* /*