void draw_nullstate(MENU *state) { set_bgcolor(state->bgcolor); clr(); int i; for (i = 0; i < state->buttonCount; i++) { draw_text_button(state->buttons[i]); } }
void draw_recordstate(MENU *state) { #ifdef STATETESTMODE printf("Clear state for record state->\n"); #endif set_bgcolor(state->bgcolor); clr(); int i; for (i = 0; i < state->buttonCount; i++) { draw_text_button(state->buttons[i]); } }
void screen_model (ESContext *esContext) { #ifndef SDLGL ESMatrix modelview; UserData *userData = esContext->userData; #endif draw_title(esContext, "Model"); char tmp_str[100]; int n = 0; #ifndef SDLGL esMatrixLoadIdentity(&modelview); esMatrixMultiply(&userData->mvpMatrix, &modelview, &userData->perspective); esMatrixMultiply(&userData->mvpMatrix2, &modelview, &userData->perspective); #endif if (clientmode == 1) { draw_text_button(esContext, "clientmode", VIEW_MODE_MODEL, "Client-Mode / No Config", FONT_PINK, 0.0, 0.0, 0.002, 0.1, ALIGN_CENTER, ALIGN_TOP, model_null, (float)n); return; } if (select_teletype == 1) { for (n = 0; n < TELETYPE_LAST; n++) { draw_text_button(esContext, teletypes[n], VIEW_MODE_MODEL, teletypes[n], FONT_WHITE, -1.25, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_teletype_set, (float)n); } return; } draw_text_button(esContext, "Model", VIEW_MODE_MODEL, "Model", FONT_WHITE, -1.25, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_null, (float)n); draw_line_f3(esContext, -1.3, -0.8 + n * 0.12 + 0.1, 0.002, 1.25, -0.8 + n * 0.12 + 0.1, 0.002, 255, 255, 0, 128); n++; draw_text_button(esContext, "model_load", VIEW_MODE_MODEL, "[LOAD]", FONT_WHITE, 1.1, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_RIGHT, ALIGN_TOP, model_load, 0); draw_text_button(esContext, "model_load2", VIEW_MODE_MODEL, "NAME:", FONT_WHITE, -1.1, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_name_edit, 0); if (ModelData[ModelActive].name[0] == 0) { strcpy(ModelData[ModelActive].name, "model1"); } sprintf(tmp_str, "%s", ModelData[ModelActive].name); draw_text_button(esContext, "model_name_edit", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_name_edit, 0); n++; draw_text_button(esContext, "model_type", VIEW_MODE_MODEL, "TYPE:", FONT_WHITE, -1.1, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_dronetype_change, 0); if (ModelData[ModelActive].dronetype > 26) { sprintf(tmp_str, "UNKNOWN: %i", ModelData[ModelActive].dronetype); draw_text_button(esContext, "dronetype_change", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_dronetype_change, 0); } else { draw_text_button(esContext, "dronetype_change", VIEW_MODE_MODEL, dronetypes[ModelData[ModelActive].dronetype], FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_dronetype_change, 0); } #ifdef SDLGL // get_background_model(ModelActive, tmp_str); if (ModelData[ModelActive].dronetype > 26) { sprintf(tmp_str, "%s/obj3d/_.obj", BASE_DIR); } else { sprintf(tmp_str, "%s/obj3d/%s.obj", BASE_DIR, dronetypes[ModelData[ModelActive].dronetype]); } if (file_exists(tmp_str) != 0) { static uint8_t startup = 0; static float rotate = 0.0; rotate += 0.5; if (startup == 0 || strcmp(obj3d_dronetype.name, tmp_str) != 0) { startup = 1; if (obj3d_dronetype.faces_num != 0) { object3d_free(&obj3d_dronetype); } object3d_load(&obj3d_dronetype, tmp_str); } glPushMatrix(); glTranslatef(0.5, (-0.8 + n * 0.12 + 0.2) * -1.0, -2.0); if (ModelData[ModelActive].heartbeat == 0) { glRotatef(rotate, 0.2, 1.0, 0.3); } else { glRotatef(-90.0, 1.0, 0.0, 0.0); // glRotatef(ModelData[ModelActive].yaw, 0.0, 0.0, -1.0); glRotatef(ModelData[ModelActive].pitch, 1.0, 0.0, 0.0); glRotatef(ModelData[ModelActive].roll, 0.0, 1.0, 0.0); } glScalef(0.25, 0.25, 0.25); object3d_draw(&obj3d_dronetype, 255, 255, 255, 100); glPopMatrix(); } else { sprintf(tmp_str, "%s/textures/%s.png", BASE_DIR, dronetypes[ModelData[ModelActive].dronetype]); draw_image_f3(esContext, -1.1 + 1.0, -0.8 + n * 0.12 - 0.02, -1.1 + 1.0 + 0.1, -0.8 + n * 0.12 + 0.1 - 0.02, 0.002, tmp_str); } #else sprintf(tmp_str, "%s/textures/%s.png", BASE_DIR, dronetypes[ModelData[ModelActive].dronetype]); draw_image_f3(esContext, -1.1 + 1.0, -0.8 + n * 0.12 - 0.02, -1.1 + 1.0 + 0.1, -0.8 + n * 0.12 + 0.1 - 0.02, 0.002, tmp_str); #endif n++; draw_text_button(esContext, "model_image_change", VIEW_MODE_MODEL, "IMAGE:", FONT_WHITE, -1.1, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_image_change, 0); draw_image_f3(esContext, -1.1 + 0.3, -0.8 + n * 0.12 - 0.02, -1.2 + 0.3 + 0.4, -0.8 + n * 0.12 + 0.3 - 0.02, 0.002, ModelData[ModelActive].image); n++; n++; draw_text_button(esContext, "Telemetry", VIEW_MODE_MODEL, "Telemetry", FONT_WHITE, -1.25, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_null, (float)n); draw_line_f3(esContext, -1.3, -0.8 + n * 0.12 + 0.1, 0.002, 1.25, -0.8 + n * 0.12 + 0.1, 0.002, 255, 255, 0, 128); n++; draw_text_button(esContext, "model_load3", VIEW_MODE_MODEL, "TYPE:", FONT_WHITE, -1.1, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_teletype_change, 0); draw_text_button(esContext, "model_teletype_change", VIEW_MODE_MODEL, teletypes[ModelData[ModelActive].teletype], FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_teletype_change, 0); n++; #ifdef SDLGL if (ModelData[ModelActive].pilottype == MAV_AUTOPILOT_PIXHAWK) { sprintf(tmp_str, "%s/obj3d/%s.obj", BASE_DIR, "PIXHAWK"); } else { sprintf(tmp_str, "%s/obj3d/%s.obj", BASE_DIR, teletypes[ModelData[ModelActive].teletype]); } if (file_exists(tmp_str) != 0) { static uint8_t startup = 0; static float rotate = 0.0; rotate += 0.4; if (startup == 0 || strcmp(obj3d_teletype.name, tmp_str) != 0) { startup = 1; if (obj3d_teletype.faces_num != 0) { object3d_free(&obj3d_teletype); } object3d_load(&obj3d_teletype, tmp_str); } glTranslatef(0.5, -0.15, -2.0); glRotatef(rotate, -1.0, -1.0, 0.2); glScalef(0.25, 0.25, 0.25); object3d_draw(&obj3d_teletype, 255, 255, 255, 100); glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); } #endif draw_text_f3(esContext, -1.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "DEVICE:"); if (ModelData[ModelActive].telemetry_port[0] == 0) { // strcpy(ModelData[ModelActive].telemetry_port, "/dev/rfcomm0"); } sprintf(tmp_str, "%s [SELECT]", ModelData[ModelActive].telemetry_port); draw_text_button(esContext, "device_select", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_device_change, 0); n++; if (strcmp(ModelData[ModelActive].telemetry_port, "TCP") == 0) { draw_text_f3(esContext, -1.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "IP:"); sprintf(tmp_str, "%s [CHANGE]", ModelData[ModelActive].netip); draw_text_button(esContext, "model_ip_edit", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_ip_edit, n); n++; draw_text_f3(esContext, -1.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "PORT:"); sprintf(tmp_str, "%i [CHANGE]", ModelData[ModelActive].netport); draw_text_button(esContext, "model_port_edit", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_port_edit, n); n++; } else if (strcmp(ModelData[ModelActive].telemetry_port, "UDP") == 0) { if (ModelData[ModelActive].teletype == TELETYPE_ARDUPILOT) { draw_text_f3(esContext, -1.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "USEID:"); sprintf(tmp_str, "%i [CHANGE]", ModelData[ModelActive].use_deviceid); if (ModelData[ModelActive].use_deviceid == 1) { draw_text_button(esContext, "rc_useid", VIEW_MODE_MODEL, tmp_str, FONT_GREEN, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_use_deviceid_change, n); n++; draw_text_f3(esContext, -1.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "SysID:"); sprintf(tmp_str, "%i [CHANGE]", ModelData[ModelActive].mavlink_sysid); draw_text_button(esContext, "rc_mavlink_sysid", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_mavlink_sysid_change, n); } else { draw_text_button(esContext, "rc_useid", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_use_deviceid_change, n); } } n++; } else { draw_text_f3(esContext, -1.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "BAUD:"); sprintf(tmp_str, "%i [CHANGE]", ModelData[ModelActive].telemetry_baud); draw_text_button(esContext, "rc_baud", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_baud_change, n); n++; draw_text_f3(esContext, -1.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "USEID:"); sprintf(tmp_str, "%i [CHANGE]", ModelData[ModelActive].use_deviceid); if (ModelData[ModelActive].use_deviceid == 1) { draw_text_button(esContext, "rc_useid", VIEW_MODE_MODEL, tmp_str, FONT_GREEN, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_use_deviceid_change, n); n++; draw_text_f3(esContext, -1.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "ID:"); draw_text_button(esContext, "rc_deviceid", VIEW_MODE_MODEL, ModelData[ModelActive].deviceid, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_null, n); } else { draw_text_button(esContext, "rc_useid", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_use_deviceid_change, n); } n++; } draw_text_f3(esContext, -1.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "FORWARD:"); if (ModelData[ModelActive].mavlink_forward == 0) { sprintf(tmp_str, "NO [CHANGE]"); } else if (ModelData[ModelActive].mavlink_forward == 1) { sprintf(tmp_str, "READ/WRITE [CHANGE]"); } else if (ModelData[ModelActive].mavlink_forward == 2) { sprintf(tmp_str, "WRITE PROTECT [CHANGE]"); } draw_text_button(esContext, "mavlink_forward_change", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.3, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_mavlink_forward_change, n); n++; if (strstr(ModelData[ModelActive].telemetry_port, "rfcomm") > 0) { n++; draw_text_f3(esContext, -1.1 + 0.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "BLUETOOTH_DEVICE:"); if (ModelData[ModelActive].telebtaddr[0] == 0) { strcpy(ModelData[ModelActive].telebtaddr, "00:00:00:00:00:00"); } sprintf(tmp_str, "%s [RESCAN]", ModelData[ModelActive].telebtaddr); draw_text_button(esContext, "bt_scan", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.8, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_null, n); n++; draw_text_f3(esContext, -1.1 + 0.1, -0.8 + n * 0.12, 0.002, 0.06, 0.06, FONT_WHITE, "BLUETOOTH_PIN:"); if (ModelData[ModelActive].telebtpin[0] == 0) { strcpy(ModelData[ModelActive].telebtpin, "1234"); } sprintf(tmp_str, "%s [CHANGE]", ModelData[ModelActive].telebtpin); draw_text_button(esContext, "bt_pin", VIEW_MODE_MODEL, tmp_str, FONT_WHITE, -1.1 + 0.8, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_LEFT, ALIGN_TOP, model_null, n); } else { n++; n++; } n = 13; draw_text_button(esContext, "model_reconnect", VIEW_MODE_MODEL, "[RECONNECT]", FONT_WHITE, 0.0, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, model_reconnect, n); n++; draw_text_button(esContext, "model_save", VIEW_MODE_MODEL, "[SAVE]", FONT_WHITE, 0.0, -0.8 + n * 0.12, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, model_save, n); screen_keyboard(esContext); screen_filesystem(esContext); screen_device(esContext); screen_baud(esContext); }
void screen_system(ESContext *esContext) { #ifndef SDLGL ESMatrix modelview; UserData *userData = esContext->userData; #endif #ifndef WINDOWS FILE *cmd = NULL; #endif char buffer[1025]; static char ip[30]; static char bcast[30]; static char mask[30]; static char hostname[30]; static char dnsserver[30]; static char gateway[30]; uint32_t now_time = time(0); static uint32_t last_time = 0; #ifndef SDLGL esMatrixLoadIdentity(&modelview); esMatrixMultiply(&userData->mvpMatrix, &modelview, &userData->perspective); #endif draw_title(esContext, "System"); if (last_time != now_time) { strcpy(ip, "---.---.---.---"); strcpy(bcast, "---.---.---.---"); strcpy(mask, "---.---.---.---"); strcpy(dnsserver, "---.---.---.---"); strcpy(gateway, "---.---.---.---"); #ifndef WINDOWS #ifndef ANDROID #ifdef OSX if ((cmd = popen("LANG=C ifconfig en0 | grep \"inet \" | sed \"s|[a-zA-Z:]||g\"", "r")) != NULL) { while (!feof(cmd)) { if (fgets(buffer, 1024, cmd) != NULL) { sscanf(buffer, "%s %s %s", (char *)&ip, (char *)&bcast, (char *)&mask); // SDL_Log("## %s, %s, %s ##\n", ip, bcast, mask); } } pclose(cmd); } #else if ((cmd = popen("LANG=C ifconfig eth0 | grep \"inet addr:\" | sed \"s|[a-zA-Z:]||g\"", "r")) != NULL) { while (!feof(cmd)) { if (fgets(buffer, 1024, cmd) != NULL) { sscanf(buffer, "%s %s %s", (char *)&ip, (char *)&bcast, (char *)&mask); // SDL_Log("## %s, %s, %s ##\n", ip, bcast, mask); } } pclose(cmd); } if ((cmd = popen("grep \"^nameserver \" /etc/resolv.conf | cut -d\" \" -f2", "r")) != NULL) { while (!feof(cmd)) { if (fgets(dnsserver, 1024, cmd) != NULL) { } } } pclose(cmd); if ((cmd = popen("route -n | grep \" 0.0.0.0.*255.255.255.0 \" | cut -d\" \" -f1", "r")) != NULL) { while (!feof(cmd)) { if (fgets(gateway, 1024, cmd) != NULL) { } } } pclose(cmd); #endif if ((cmd = popen("hostname", "r")) != NULL) { while (!feof(cmd)) { if (fgets(hostname, 1024, cmd) != NULL) { } } } pclose(cmd); #endif #endif last_time = now_time; } sprintf(buffer, "Name : %s", hostname); draw_text_f(esContext, -0.5, -0.8 + 1 * 0.1, 0.06, 0.06, FONT_GREEN, buffer); sprintf(buffer, "IP : %s", ip); draw_text_f(esContext, -0.5, -0.8 + 3 * 0.1, 0.06, 0.06, FONT_GREEN, buffer); sprintf(buffer, "BCAST : %s", bcast); draw_text_f(esContext, -0.5, -0.8 + 4 * 0.1, 0.06, 0.06, FONT_GREEN, buffer); sprintf(buffer, "MASK : %s", mask); draw_text_f(esContext, -0.5, -0.8 + 5 * 0.1, 0.06, 0.06, FONT_GREEN, buffer); sprintf(buffer, "DNS : %s", dnsserver); draw_text_f(esContext, -0.5, -0.8 + 6 * 0.1, 0.06, 0.06, FONT_GREEN, buffer); sprintf(buffer, "GATE : %s", gateway); draw_text_f(esContext, -0.5, -0.8 + 7 * 0.1, 0.06, 0.06, FONT_GREEN, buffer); draw_text_button(esContext, "system_dhclient", VIEW_MODE_SYSTEM, "<GET IP OVER DHCP>", FONT_GREEN, 0.0, -0.8 + 9 * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, system_dhclient, 0.0); // draw_text_button(esContext, "system_gcs", VIEW_MODE_SYSTEM, "<UPDATE GCS>", FONT_GREEN, 0.0, -0.8 + 10 * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, system_update, 0.0); // Connections-Status char tmp_str[100]; uint8_t n = 0; if (ModelData[ModelActive].teletype == TELETYPE_AUTOQUAD || ModelData[ModelActive].teletype == TELETYPE_ARDUPILOT || ModelData[ModelActive].teletype == TELETYPE_MEGAPIRATE_NG) { if (mavlink_connection_status(ModelActive) != 0) { sprintf(tmp_str, "MAVLINK %s (%i / %i)", ModelData[ModelActive].telemetry_port, ModelData[ModelActive].telemetry_baud, (uint8_t)(time(0)) - mavlink_connection_status(ModelActive)); draw_text_button(esContext, "mavlink_connection_status", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } else { sprintf(tmp_str, "MAVLINK %s (%i)", ModelData[ModelActive].telemetry_port, ModelData[ModelActive].telemetry_baud); draw_text_button(esContext, "mavlink_connection_status", VIEW_MODE_SYSTEM, tmp_str, FONT_WHITE, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } } else { draw_text_button(esContext, "mavlink_connection_status", VIEW_MODE_SYSTEM, "MAVLINK", FONT_TRANS, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } if (ModelData[ModelActive].teletype == TELETYPE_MULTIWII_21 || ModelData[ModelActive].teletype == TELETYPE_BASEFLIGHT) { if (mwi21_connection_status(ModelActive) != 0) { sprintf(tmp_str, "MULTIWII21 %s (%i / %i)", ModelData[ModelActive].telemetry_port, ModelData[ModelActive].telemetry_baud, (uint8_t)(time(0)) - mwi21_connection_status(ModelActive)); draw_text_button(esContext, "mwi21_connection_status", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } else { sprintf(tmp_str, "MULTIWII21 %s (%i)", ModelData[ModelActive].telemetry_port, ModelData[ModelActive].telemetry_baud); draw_text_button(esContext, "mwi21_connection_status", VIEW_MODE_SYSTEM, tmp_str, FONT_WHITE, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } } else { draw_text_button(esContext, "mwi21_connection_status", VIEW_MODE_SYSTEM, "MULTIWII21", FONT_TRANS, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } if (ModelData[ModelActive].teletype == TELETYPE_BASEFLIGHT) { if (mwi21_connection_status(ModelActive) != 0) { sprintf(tmp_str, "BASEFLIGHT %s (%i / %i)", ModelData[ModelActive].telemetry_port, ModelData[ModelActive].telemetry_baud, (uint8_t)(time(0)) - mwi21_connection_status(ModelActive)); draw_text_button(esContext, "mwi21_connection_status", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } else { sprintf(tmp_str, "BASEFLIGHT %s (%i)", ModelData[ModelActive].telemetry_port, ModelData[ModelActive].telemetry_baud); draw_text_button(esContext, "mwi21_connection_status", VIEW_MODE_SYSTEM, tmp_str, FONT_WHITE, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } } else { draw_text_button(esContext, "mwi21_connection_status", VIEW_MODE_SYSTEM, "BASEFLIGHT", FONT_TRANS, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } if (ModelData[ModelActive].teletype == TELETYPE_OPENPILOT) { if (openpilot_connection_status(ModelActive) != 0) { sprintf(tmp_str, "OPENPILOT %s (%i / %i)", ModelData[ModelActive].telemetry_port, ModelData[ModelActive].telemetry_baud, (uint8_t)(time(0)) - openpilot_connection_status(ModelActive)); draw_text_button(esContext, "openpilot_connection_status", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } else { sprintf(tmp_str, "OPENPILOT %s (%i)", ModelData[ModelActive].telemetry_port, ModelData[ModelActive].telemetry_baud); draw_text_button(esContext, "openpilot_connection_status", VIEW_MODE_SYSTEM, tmp_str, FONT_WHITE, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } } else { draw_text_button(esContext, "openpilot_connection_status", VIEW_MODE_SYSTEM, "OPENPILOT", FONT_TRANS, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } if (ModelData[ModelActive].teletype == TELETYPE_GPS_NMEA) { if (gps_connection_status(ModelActive) != 0) { sprintf(tmp_str, "NMEA-GPS %s (%i / %i)", ModelData[ModelActive].telemetry_port, ModelData[ModelActive].telemetry_baud, (uint8_t)(time(0)) - gps_connection_status(ModelActive)); draw_text_button(esContext, "gps_connection_status", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } else { sprintf(tmp_str, "NMEA-GPS %s (%i)", ModelData[ModelActive].telemetry_port, ModelData[ModelActive].telemetry_baud); draw_text_button(esContext, "gps_connection_status", VIEW_MODE_SYSTEM, tmp_str, FONT_WHITE, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } } else { draw_text_button(esContext, "gps_connection_status", VIEW_MODE_SYSTEM, "NMEA-GPS", FONT_TRANS, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_null, 0.0); } if (frsky_connection_status() != 0) { sprintf(tmp_str, "FRSKY %s (%i / %i)", setup.frsky_port, setup.frsky_baud, (uint8_t)(time(0)) - frsky_connection_status()); draw_text_button(esContext, "frsky", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_device_change, 0.0); } else { sprintf(tmp_str, "FRSKY %s (%i)", setup.frsky_port, setup.frsky_baud); draw_text_button(esContext, "frsky", VIEW_MODE_SYSTEM, tmp_str, FONT_WHITE, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_device_change, 0.0); } if (jeti_connection_status() != 0) { sprintf(tmp_str, "JETI %s (%i / %i)", setup.jeti_port, setup.jeti_baud, (uint8_t)(time(0)) - jeti_connection_status()); draw_text_button(esContext, "jeti", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_device_change, 0.0); } else { sprintf(tmp_str, "JETI %s (%i)", setup.jeti_port, setup.jeti_baud); draw_text_button(esContext, "jeti", VIEW_MODE_SYSTEM, tmp_str, FONT_WHITE, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_device_change, 0.0); } if (gcsgps_connection_status() != 0) { sprintf(tmp_str, "GCS-GPS %s (%i / %i)", setup.gcs_gps_port, setup.gcs_gps_baud, (uint8_t)(time(0)) - gcsgps_connection_status()); draw_text_button(esContext, "gcs_gps", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_device_change, 0.0); } else { sprintf(tmp_str, "GCS-GPS %s (%i)", setup.gcs_gps_port, setup.gcs_gps_baud); draw_text_button(esContext, "gcs_gps", VIEW_MODE_SYSTEM, tmp_str, FONT_WHITE, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_device_change, 0.0); } if (rcflow_connection_status() != 0) { sprintf(tmp_str, "RCFLOW %s (%i / %i)", setup.rcflow_port, setup.rcflow_baud, (uint8_t)(time(0)) - rcflow_connection_status()); draw_text_button(esContext, "rcflow", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_device_change, 0.0); } else { sprintf(tmp_str, "RCFLOW %s (%i)", setup.rcflow_port, setup.rcflow_baud); draw_text_button(esContext, "rcflow", VIEW_MODE_SYSTEM, tmp_str, FONT_WHITE, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_device_change, 0.0); } if (tracker_connection_status() != 0) { sprintf(tmp_str, "TRACKER %s (%i / %i)", setup.tracker_port, setup.tracker_baud, (uint8_t)(time(0)) - tracker_connection_status()); draw_text_button(esContext, "tracker", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_device_change, 0.0); } else { sprintf(tmp_str, "TRACKER %s (%i)", setup.tracker_port, setup.tracker_baud); draw_text_button(esContext, "tracker", VIEW_MODE_SYSTEM, tmp_str, FONT_WHITE, -1.3, 0.2 + n++ * 0.065, 0.002, 0.04, ALIGN_LEFT, ALIGN_TOP, system_device_change, 0.0); } sprintf(tmp_str, "Font: %s (%i/%i)", fontnames[(int)setup.font], setup.font + 1, FONT_MAX); draw_text_button(esContext, "_font", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, 0.55, 0.2, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_font, 0.0); sprintf(tmp_str, "Resolution: %ix%i", esContext->width, esContext->height); draw_text_button(esContext, "_res", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, 0.55, 0.3, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_fps, 0.0); draw_text_button(esContext, "_border_x", VIEW_MODE_SYSTEM, "X-Border", FONT_GREEN, 0.55, 0.4, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_border_x, 0.0); draw_text_button(esContext, "_border_x--", VIEW_MODE_SYSTEM, "[-]", FONT_GREEN, 0.85, 0.4, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_border_x, -2.0); draw_text_button(esContext, "_border_x++", VIEW_MODE_SYSTEM, "[+]", FONT_GREEN, 0.95, 0.4, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_border_x, 2.0); draw_text_button(esContext, "_border_y", VIEW_MODE_SYSTEM, "Y-Border", FONT_GREEN, 0.55, 0.5, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_border_y, 0.0); draw_text_button(esContext, "_border_y--", VIEW_MODE_SYSTEM, "[-]", FONT_GREEN, 0.85, 0.5, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_border_y, -2.0); draw_text_button(esContext, "_border_y++", VIEW_MODE_SYSTEM, "[+]", FONT_GREEN, 0.95, 0.5, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_border_y, 2.0); sprintf(tmp_str, "Ratio(%0.1f)", setup.keep_ratio); draw_text_button(esContext, "ratio", VIEW_MODE_SYSTEM, tmp_str, FONT_GREEN, 0.55, 0.6, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_ratio, 0.0); draw_text_button(esContext, "ratio--", VIEW_MODE_SYSTEM, "[-]", FONT_GREEN, 0.85, 0.6, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_ratio, -0.1); draw_text_button(esContext, "ratio++", VIEW_MODE_SYSTEM, "[+]", FONT_GREEN, 0.95, 0.6, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_ratio, 0.1); if (setup.side_by_side == 1) { draw_text_button(esContext, "side_by_side", VIEW_MODE_SYSTEM, "SideBySide", FONT_PINK, 0.55, 0.7, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_side_by_side, 0.1); } else { draw_text_button(esContext, "side_by_side", VIEW_MODE_SYSTEM, "SideBySide", FONT_GREEN, 0.55, 0.7, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_side_by_side, 0.1); } #ifndef ANDROID #ifdef SDL2 if (setup.fullscreen == 0) { draw_text_button(esContext, "fullscreen", VIEW_MODE_SYSTEM, "TOGGLE FULLSCREEN", FONT_WHITE, 0.55, 0.7, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_fullscreen, 0.0); } else { draw_text_button(esContext, "fullscreen", VIEW_MODE_SYSTEM, "TOGGLE FULLSCREEN", FONT_GREEN, 0.55, 0.7, 0.002, 0.05, ALIGN_LEFT, ALIGN_TOP, system_set_fullscreen, 0.0); } #endif #endif if (setup.weather_enable == 1) { draw_text_button(esContext, "copyright", VIEW_MODE_SYSTEM, "Weather-Data copyright by http://www.openweathermap.org", FONT_PINK, 0.0, 0.88, 0.002, 0.04, ALIGN_CENTER, ALIGN_TOP, system_null, 0.0); } draw_text_button(esContext, "copyright", VIEW_MODE_SYSTEM, "Copyright by Oliver Dippel ([email protected])", FONT_PINK, 0.0, 0.93, 0.002, 0.04, ALIGN_CENTER, ALIGN_TOP, system_null, 0.0); screen_device(esContext); screen_baud(esContext); if (resize != 0) { resize = 0; #ifdef SDL2 glResize(esContext, setup.screen_w, setup.screen_h); #endif } }
void screen_overview(ESContext *esContext) { #ifndef SDLGL ESMatrix modelview; UserData *userData = esContext->userData; #endif char tmp_str[1024]; uint8_t n = 0; #ifndef SDLGL esMatrixLoadIdentity(&modelview); esMatrixMultiply(&userData->mvpMatrix, &modelview, &userData->perspective); #endif reset_buttons(); draw_text_button(esContext, "Screens", setup.view_mode, "Screens", FONT_PINK, -0.8, -0.6 + -2 * 0.1, 0.002, 0.08, ALIGN_CENTER, ALIGN_TOP, overview_set, (float)0); for (n = 0; n < VIEW_MODE_LAST; n++) { sprintf(tmp_str, "%s", view_names[n]); if (setup.view_mode == n) { draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str, FONT_GREEN, -0.8, -0.6 + n * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, overview_set, (float)n); } else { draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str, FONT_WHITE, -0.8, -0.6 + n * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, overview_set, (float)n); } } draw_text_button(esContext, "Options", setup.view_mode, "Options", FONT_PINK, 0.8, -0.6 + -2 * 0.1, 0.002, 0.08, ALIGN_CENTER, ALIGN_TOP, overview_set, (float)0); n = 0; if (setup.speak == 1) { draw_text_button(esContext, "SPEAK", setup.view_mode, "SPEAK", FONT_GREEN, 0.8, -0.6 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } else { draw_text_button(esContext, "SPEAK", setup.view_mode, "SPEAK", FONT_WHITE, 0.8, -0.6 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } if (logmode == 1) { draw_text_button(esContext, "LOGGING", setup.view_mode, "LOGGING", FONT_GREEN, 0.8, -0.6 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } else { draw_text_button(esContext, "LOGGING", setup.view_mode, "LOGGING", FONT_WHITE, 0.8, -0.6 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } #ifndef OSX if (logplay == 1) { draw_text_button(esContext, "LOGPLAYER", setup.view_mode, "LOGPLAYER", FONT_GREEN, 0.8, -0.6 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } else { draw_text_button(esContext, "LOGPLAYER", setup.view_mode, "LOGPLAYER", FONT_WHITE, 0.8, -0.6 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } #endif n++; n++; n++; draw_text_button(esContext, "EXIT", setup.view_mode, "EXIT", FONT_WHITE, 0.8, -0.6 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); }
void screen_overview(ESContext *esContext) { #ifndef SDLGL ESMatrix modelview; UserData *userData = esContext->userData; #endif char tmp_str[1024]; uint8_t n = 0; #ifndef SDLGL esMatrixLoadIdentity(&modelview); esMatrixMultiply(&userData->mvpMatrix, &modelview, &userData->perspective); #endif reset_buttons(); int x = 0; int y = 0; for (n = 0; n < VIEW_MODE_LAST; n++) { if (x >= 4) { x = 0; y += 1; } #ifndef WINDOWS #ifndef ANDROID draw_to_buffer(); if (n == VIEW_MODE_HUD) { screen_hud(esContext); } else if (n == VIEW_MODE_TELEMETRY) { screen_telemetry(esContext); } else if (n == VIEW_MODE_MODEL) { screen_model(esContext); } else if (n == VIEW_MODE_RCFLOW) { screen_rcflow(esContext); } else if (n == VIEW_MODE_FMS) { screen_fms(esContext); } else if (n == VIEW_MODE_WPEDIT) { screen_wpedit(esContext); } else if (n == VIEW_MODE_MAP) { screen_map(esContext, lat, lon, zoom); } else if (n == VIEW_MODE_SYSTEM) { screen_system(esContext); #ifndef ANDROID } else if (n == VIEW_MODE_VIDEOLIST) { screen_videolist(esContext); #ifdef USE_TCL } else if (n == VIEW_MODE_TCL) { screen_tcl(esContext); #endif #endif } else if (n == VIEW_MODE_TRACKER) { screen_tracker(esContext); } else if (n == VIEW_MODE_FCMENU) { if (ModelData[ModelActive].teletype == TELETYPE_MULTIWII_21) { screen_mwi_menu(esContext); } else if (ModelData[ModelActive].teletype == TELETYPE_BASEFLIGHT) { screen_mwi_menu(esContext); } else if (ModelData[ModelActive].teletype == TELETYPE_GPS_NMEA) { screen_graph(esContext); } else if (ModelData[ModelActive].teletype == TELETYPE_OPENPILOT) { screen_openpilot(esContext); } else { screen_mavlink_menu(esContext); } } draw_to_screen(); draw_buffer_to_screen(-1.422 + x * 0.71, -0.99 + y * 0.66, -1.422 + x * 0.71 + 0.71, -0.99 + y * 0.66 + 0.66, 0.002, 1.0); sprintf(tmp_str, "%s", view_names[n]); if (setup.view_mode == n) { draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str, FONT_GREEN, -1.422 + 0.35 + x * 0.71, -0.99 + y * 0.66, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, overview_set, (float)n); } else { draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str, FONT_WHITE, -1.422 + 0.35 + x * 0.71, -0.99 + y * 0.66, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, overview_set, (float)n); } #else sprintf(tmp_str, "%s", view_names[n]); draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str, FONT_WHITE, -1.422 + 0.35 + x * 0.71, -0.99 + y * 0.66 + 0.3, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, overview_set, (float)n); #endif #else sprintf(tmp_str, "%s", view_names[n]); draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str, FONT_WHITE, -1.422 + 0.35 + x * 0.71, -0.99 + y * 0.66 + 0.3, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, overview_set, (float)n); #endif reset_buttons(); x++; } x = 0; y = 0; for (n = 0; n < VIEW_MODE_LAST; n++) { if (x >= 4) { x = 0; y += 1; } // draw_rect_f3(esContext, -1.3 + x * 0.5, -0.8 + y * 0.4, 0.002, -1.3 + x * 0.5 + 0.5, -0.8 + y * 0.4 + 0.4, 0.002, 255, 255, 255, 255); // set_button(view_names[n], setup.view_mode, -1.3 + x * 0.5, -0.8 + y * 0.4, -1.3 + x * 0.5 + 0.5, -0.8 + y * 0.4 + 0.4, overview_set, (float)n, 0); draw_rect_f3(esContext, -1.422 + x * 0.71, -0.99 + y * 0.66, 0.002, -1.422 + x * 0.71 + 0.71, -0.99 + y * 0.66 + 0.66, 0.002, 255, 255, 255, 255); set_button(view_names[n], setup.view_mode, -1.422 + x * 0.71, -0.99 + y * 0.66, -1.422 + x * 0.71 + 0.71, -0.99 + y * 0.66 + 0.66, overview_set, (float)n, 0); x++; } draw_text_button(esContext, "Options", setup.view_mode, "Options", FONT_PINK, 1.05, 0.55 + -2 * 0.1, 0.002, 0.08, ALIGN_CENTER, ALIGN_TOP, overview_set, (float)0); n = 0; if (setup.speak == 1) { draw_text_button(esContext, "SPEAK", setup.view_mode, "SPEAK", FONT_GREEN, 1.05, 0.45 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } else { draw_text_button(esContext, "SPEAK", setup.view_mode, "SPEAK", FONT_WHITE, 1.05, 0.45 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } if (logmode == 1) { draw_text_button(esContext, "LOGGING", setup.view_mode, "LOGGING", FONT_GREEN, 1.05, 0.45 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } else { draw_text_button(esContext, "LOGGING", setup.view_mode, "LOGGING", FONT_WHITE, 1.05, 0.45 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } #ifndef OSX if (logplay == 1) { draw_text_button(esContext, "LOGPLAYER", setup.view_mode, "LOGPLAYER", FONT_GREEN, 1.05, 0.45 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } else { draw_text_button(esContext, "LOGPLAYER", setup.view_mode, "LOGPLAYER", FONT_WHITE, 1.05, 0.45 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } #endif if (clientmode != 1 && setup.webport != 0) { if (webserv_is_running() == 1) { draw_text_button(esContext, "WEBSERV", setup.view_mode, "stop Webserver", FONT_GREEN, 1.05, 0.45 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } else { draw_text_button(esContext, "WEBSERV", setup.view_mode, "start Webserver", FONT_WHITE, 1.05, 0.45 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); } } draw_text_button(esContext, "EXIT", setup.view_mode, "EXIT", FONT_GREEN, 1.05, 0.45 + n++ * 0.1, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, option_cmd, 0.0); }
void screen_mwi_menu (ESContext *esContext) { int16_t n = 0; int16_t n2 = 0; int16_t n3 = 0; char tmp_str[100]; char tmp_str2[100]; draw_title(esContext, "MultiWii"); if (mwi_view == 1) { for (n3 = 0; n3 < 4; n3++) { if (n3 < 4) { float val = (float)ModelData.radio[4 + n3] / 2.0 + 50.0; if (val > 100.0) { val = 100.0; } else if (val < -100.0) { val = -100.0; } draw_circleMeter_f3(esContext, -0.4 + (float)n3 * 0.16 * 3.0, -0.8, 0.001, 0.06, 20.0, 30.0, 70.0, 160.0, val, "", "", 1); } sprintf(tmp_str2, " AUX%i", n3 + 1); draw_text_button(esContext, "box", VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -0.85 + (float)n3 * 0.16 * 3.0, -0.87, 0.002, 0.08, 0, 0, mwi_null, (float)n3); if (ModelData.radio[4 + n3] < -40) { draw_text_button(esContext, "box", VIEW_MODE_FCMENU, " L", FONT_GREEN, -0.8 + (float)n3 * 0.16 * 3.0, -0.8, 0.002, 0.08, 0, 0, mwi_null, (float)n3); draw_text_button(esContext, "box", VIEW_MODE_FCMENU, " M", FONT_WHITE, -0.8 + (float)n3 * 0.16 * 3.0 + 0.16, -0.8, 0.002, 0.08, 0, 0, mwi_null, (float)n3); draw_text_button(esContext, "box", VIEW_MODE_FCMENU, " H", FONT_WHITE, -0.8 + (float)n3 * 0.16 * 3.0 + 0.32, -0.8, 0.002, 0.08, 0, 0, mwi_null, (float)n3); } else if (ModelData.radio[4 + n3] > 40) { draw_text_button(esContext, "box", VIEW_MODE_FCMENU, " L", FONT_WHITE, -0.8 + (float)n3 * 0.16 * 3.0, -0.8, 0.002, 0.08, 0, 0, mwi_null, (float)n3); draw_text_button(esContext, "box", VIEW_MODE_FCMENU, " M", FONT_WHITE, -0.8 + (float)n3 * 0.16 * 3.0 + 0.16, -0.8, 0.002, 0.08, 0, 0, mwi_null, (float)n3); draw_text_button(esContext, "box", VIEW_MODE_FCMENU, " H", FONT_GREEN, -0.8 + (float)n3 * 0.16 * 3.0 + 0.32, -0.8, 0.002, 0.08, 0, 0, mwi_null, (float)n3); } else { draw_text_button(esContext, "box", VIEW_MODE_FCMENU, " L", FONT_WHITE, -0.8 + (float)n3 * 0.16 * 3.0, -0.8, 0.002, 0.08, 0, 0, mwi_null, (float)n3); draw_text_button(esContext, "box", VIEW_MODE_FCMENU, " M", FONT_GREEN, -0.8 + (float)n3 * 0.16 * 3.0 + 0.16, -0.8, 0.002, 0.08, 0, 0, mwi_null, (float)n3); draw_text_button(esContext, "box", VIEW_MODE_FCMENU, " H", FONT_WHITE, -0.8 + (float)n3 * 0.16 * 3.0 + 0.32, -0.8, 0.002, 0.08, 0, 0, mwi_null, (float)n3); } } for (n2 = 0; n2 < 16 && mwi_box_names[n2][0] != 0; n2++) { sprintf(tmp_str, "mwi_v%i", n); sprintf(tmp_str2, "%s", mwi_box_names[n2]); if (n2 < 3 && ! (mwi_sensors & (1<<n2))) { draw_text_button(esContext, "box", VIEW_MODE_FCMENU, tmp_str2, FONT_TRANS, -1.2, -0.7 + (float)n2 * 0.1, 0.002, 0.08, 0, 0, mwi_null, (float)n2); // } else if ((n2 == 6 || n2 == 7) && ! (mwi_sensors & (1<<3))) { // draw_text_button(esContext, "box", VIEW_MODE_FCMENU, tmp_str2, FONT_TRANS, -1.2, -0.7 + (float)n2 * 0.1, 0.002, 0.08, 0, 0, mwi_null, (float)n2); // } else if ((n2 == 9) && ! (mwi_sensors & (1<<2))) { // draw_text_button(esContext, "box", VIEW_MODE_FCMENU, tmp_str2, FONT_TRANS, -1.2, -0.7 + (float)n2 * 0.1, 0.002, 0.08, 0, 0, mwi_null, (float)n2); } else if (mwi_status & (1<<n2)) { draw_text_button(esContext, "box", VIEW_MODE_FCMENU, tmp_str2, FONT_GREEN, -1.2, -0.7 + (float)n2 * 0.1, 0.002, 0.08, 0, 0, mwi_null, (float)n2); } else { draw_text_button(esContext, "box", VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -1.2, -0.7 + (float)n2 * 0.1, 0.002, 0.08, 0, 0, mwi_null, (float)n2); } } n = 0; for (n2 = 0; n2 < 16 && mwi_box_names[n2][0] != 0; n2++) { for (n3 = 0; n3 < 12; n3++) { sprintf(tmp_str, "mwi_v%i", n); if (mwi_set_box[n2] & (1<<n3)) { sprintf(tmp_str2, "[x]"); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -0.8 + (float)n3 * 0.16, -0.7 + (float)n2 * 0.1, 0.002, 0.08, 0, 0, mwi_box_set, (float)n); } else { sprintf(tmp_str2, "[ ]"); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -0.8 + (float)n3 * 0.16, -0.7 + (float)n2 * 0.1, 0.002, 0.08, 0, 0, mwi_box_set, (float)n); } n++; } } draw_text_button(esContext, "mwi_view", VIEW_MODE_FCMENU, "[BOX]", FONT_WHITE, 0.0, 0.9, 0.002, 0.07, 1, 0, mwi_view_change, 0.0); } else { draw_text_button(esContext, "pid", VIEW_MODE_FCMENU, "P", FONT_WHITE, -0.7 + 1.0 * 0.2, -0.8, 0.002, 0.08, 1, 0, mwi_pid_set, (float)0); draw_text_button(esContext, "pid", VIEW_MODE_FCMENU, "I", FONT_WHITE, 0.0 + 1.0 * 0.2, -0.8, 0.002, 0.08, 1, 0, mwi_pid_set, (float)1); draw_text_button(esContext, "pid", VIEW_MODE_FCMENU, "D", FONT_WHITE, 0.7 + 1.0 * 0.2, -0.8, 0.002, 0.08, 1, 0, mwi_pid_set, (float)2); for (n2 = 0; n2 < 16 && mwi_pid_names[n2][0]; n2++) { sprintf(tmp_str2, "%s", mwi_pid_names[n2]); draw_text_button(esContext, "pid", VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -1.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 0, 0, mwi_null, (float)n2); if (n2 < 3) { float val = (float)ModelData.radio[n2] / 2.0 + 50.0; if (val > 100.0) { val = 100.0; } else if (val < -100.0) { val = -100.0; } draw_circleMeter_f3(esContext, -0.85, -0.7 + (float)n2 * 0.13 + 0.07, 0.001, 0.06, 20.0, 50.0, 50.0, 160.0, val, "", "", 1); } } n = 0; for (n2 = 0; n2 < 16 && mwi_pid_names[n2][0]; n2++) { if (n2 == 114) { sprintf(tmp_str2, "%0.2f", (float)mwi_pid[n2][0] / 100.0); sprintf(tmp_str, "mwi_p-%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[-]", FONT_WHITE, -0.7 + 0.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n); sprintf(tmp_str, "mwi_p%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -0.7 + 1.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n); sprintf(tmp_str, "mwi_p+%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[+]", FONT_WHITE, -0.7 + 2.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n); sprintf(tmp_str2, "%0.2f", (float)mwi_pid[n2][1] / 100.0); sprintf(tmp_str, "mwi_i-%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[-]", FONT_WHITE, -0.0 + 0.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 1.0); sprintf(tmp_str, "mwi_i%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -0.0 + 1.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 1.0); sprintf(tmp_str, "mwi_i+%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[+]", FONT_WHITE, -0.0 + 2.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 1.0); } else if (n2 == 115 || n2 == 116) { sprintf(tmp_str2, "%0.2f", (float)mwi_pid[n2][0] / 10.0); sprintf(tmp_str, "mwi_p-%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[-]", FONT_WHITE, -0.7 + 0.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n); sprintf(tmp_str, "mwi_p%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -0.7 + 1.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n); sprintf(tmp_str, "mwi_p+%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[+]", FONT_WHITE, -0.7 + 2.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n); sprintf(tmp_str2, "%0.2f", (float)mwi_pid[n2][1] / 100.0); sprintf(tmp_str, "mwi_i-%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[-]", FONT_WHITE, -0.0 + 0.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 1.0); sprintf(tmp_str, "mwi_i%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -0.0 + 1.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 1.0); sprintf(tmp_str, "mwi_i+%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[+]", FONT_WHITE, -0.0 + 2.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 1.0); sprintf(tmp_str2, "%0.3f", (float)mwi_pid[n2][2] / 1000.0); sprintf(tmp_str, "mwi_d-%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[-]", FONT_WHITE, 0.7 + 0.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 2.0); sprintf(tmp_str, "mwi_d%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, 0.7 + 1.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 2.0); sprintf(tmp_str, "mwi_d+%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[+]", FONT_WHITE, 0.7 + 2.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 2.0); } else { sprintf(tmp_str2, "%0.2f", (float)mwi_pid[n2][0] / 10.0); sprintf(tmp_str, "mwi_p-%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[-]", FONT_WHITE, -0.7 + 0.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n); sprintf(tmp_str, "mwi_p%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -0.7 + 1.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n); sprintf(tmp_str, "mwi_p+%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[+]", FONT_WHITE, -0.7 + 2.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n); if (n2 != 118) { sprintf(tmp_str2, "%0.3f", (float)mwi_pid[n2][1] / 1000.0); sprintf(tmp_str, "mwi_i-%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[-]", FONT_WHITE, -0.0 + 0.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 1.0); sprintf(tmp_str, "mwi_i%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, -0.0 + 1.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 1.0); sprintf(tmp_str, "mwi_i+%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[+]", FONT_WHITE, -0.0 + 2.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 1.0); sprintf(tmp_str2, "%0.0f", (float)mwi_pid[n2][2] / 1.0); sprintf(tmp_str, "mwi_d-%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[-]", FONT_WHITE, 0.7 + 0.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 2.0); sprintf(tmp_str, "mwi_d%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, tmp_str2, FONT_WHITE, 0.7 + 1.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 2.0); sprintf(tmp_str, "mwi_d+%i", n); draw_text_button(esContext, tmp_str, VIEW_MODE_FCMENU, "[+]", FONT_WHITE, 0.7 + 2.0 * 0.2, -0.7 + (float)n2 * 0.13, 0.002, 0.08, 1, 0, mwi_pid_set, (float)n + 2.0); } } n += 3; } draw_text_button(esContext, "mwi_view", VIEW_MODE_FCMENU, "[PID]", FONT_WHITE, 0.0, 0.9, 0.002, 0.07, 1, 0, mwi_view_change, 0.0); } draw_text_button(esContext, "mwi_cal_acc", VIEW_MODE_FCMENU, "[CAL_ACC]", FONT_WHITE, -0.8, 0.9, 0.002, 0.07, 1, 0, mwi_cal_acc, 0.0); draw_text_button(esContext, "mwi_cal_mac", VIEW_MODE_FCMENU, "[CAL_MAG]", FONT_WHITE, -0.4, 0.9, 0.002, 0.07, 1, 0, mwi_cal_mac, 0.0); draw_text_button(esContext, "mwi_get_values", VIEW_MODE_FCMENU, "[READ]", FONT_WHITE, 0.4, 0.9, 0.002, 0.07, 1, 0, mwi_get_values, 0.0); draw_text_button(esContext, "mwi_write_rom", VIEW_MODE_FCMENU, "[WRITE_ROM]", FONT_WHITE, 0.8, 0.9, 0.002, 0.07, 1, 0, mwi_write_rom, 0.0); }
void screen_keyboard(ESContext *esContext) { #ifdef SDLGL if (draw_target() != 0) { return; } #endif #ifndef SDLGL ESMatrix modelview; UserData *userData = esContext->userData; #endif if (show_keyboard != setup.view_mode) { return; } reset_buttons(); draw_box_f3(esContext, -1.5, -1.0, 0.02, 1.5, 1.0, 0.02, 0, 0, 0, 200); draw_title(esContext, "Keyboard"); char tmp_str[100]; char tmp_str2[100]; int n = 0; #ifndef SDLGL esMatrixLoadIdentity(&modelview); esMatrixMultiply(&userData->mvpMatrix, &modelview, &userData->perspective); esMatrixMultiply(&userData->mvpMatrix2, &modelview, &userData->perspective); #endif for (n = 0; n < strlen(new_name) + 1; n++) { if (new_name[n] != 0) { sprintf(tmp_str2, "%c", new_name[n]); } else { sprintf(tmp_str2, "[END]"); } sprintf(tmp_str, "set_char_%i", n); draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str2, FONT_WHITE, -0.9 + n * 0.08, -0.6, 0.02, 0.06, ALIGN_LEFT, ALIGN_TOP, keyboard_pos_char, n); if (n == new_name_cnt) { draw_text_button(esContext, "mark", setup.view_mode, "^", FONT_WHITE, -0.9 + n * 0.08, -0.5, 0.02, 0.06, ALIGN_LEFT, ALIGN_TOP, keyboard_pos_char, n); } } draw_text_button(esContext, "rcname_save", setup.view_mode, "[OK]", FONT_WHITE, 0.4, -0.6, 0.02, 0.06, ALIGN_LEFT, ALIGN_TOP, keyboard_name_save, 0); draw_text_button(esContext, "rcname_cancel", setup.view_mode, "[CANCEL]", FONT_WHITE, 0.6, -0.6, 0.02, 0.06, ALIGN_LEFT, ALIGN_TOP, keyboard_name_cancel, 0); uint8_t x = 0; uint8_t y = 0; if (type == 0) { for (n = 33; n < 150; n++) { sprintf(tmp_str2, "%c", n); sprintf(tmp_str, "add_char_%i", n); draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str2, FONT_WHITE, -1.1 + x * 0.14, -0.3 + y * 0.14, 0.02, 0.06, ALIGN_CENTER, ALIGN_TOP, keyboard_add_char, n); if (x > 14) { y++; x = 0; } else { x++; } } } else { for (n = '0'; n <= '9'; n++) { sprintf(tmp_str2, "%c", n); sprintf(tmp_str, "add_char_%i", n); draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str2, FONT_WHITE, -1.1 + x * 0.14, -0.3 + y * 0.14, 0.02, 0.1, ALIGN_CENTER, ALIGN_TOP, keyboard_add_char, n); if (x > 1) { y++; x = 0; } else { x++; } } if (type == 2) { sprintf(tmp_str2, "%c", '.'); sprintf(tmp_str, "add_char_%i", '.'); draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str2, FONT_WHITE, -1.1 + x * 0.14, -0.3 + y * 0.14, 0.02, 0.1, ALIGN_CENTER, ALIGN_TOP, keyboard_add_char, '.'); if (x > 1) { y++; x = 0; } else { x++; } } sprintf(tmp_str2, "%c", '-'); sprintf(tmp_str, "add_char_%i", '-'); draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str2, FONT_WHITE, -1.1 + x * 0.14, -0.3 + y * 0.14, 0.02, 0.1, ALIGN_CENTER, ALIGN_TOP, keyboard_add_char, '-'); if (x > 1) { y++; x = 0; } else { x++; } } sprintf(tmp_str2, "[END]"); sprintf(tmp_str, "add_char_%i", 0); draw_text_button(esContext, tmp_str, setup.view_mode, tmp_str2, FONT_WHITE, -1.1 + x * 0.14, -0.3 + y * 0.14, 0.02, 0.06, ALIGN_CENTER, ALIGN_TOP, keyboard_add_char, 0); if (keyboard_key[0] != 0) { if (strcmp(keyboard_key, "return") == 0) { keyboard_name_save("", 0.0, 0.0, 0, 0.0, 0); } else if (strcmp(keyboard_key, "backspace") == 0) { new_name_cnt--; } else if (strcmp(keyboard_key, "delete") == 0) { keyboard_add_char("", 0.0, 0.0, 0, 0.0, 0); } else if (strcmp(keyboard_key, "up") == 0) { } else if (strcmp(keyboard_key, "down") == 0) { } else if (strcmp(keyboard_key, "end") == 0) { } else if (strcmp(keyboard_key, "home") == 0) { new_name_cnt = 0; } else if (strcmp(keyboard_key, "escape") == 0) { keyboard_name_cancel("", 0.0, 0.0, 0, 0.0, 0); } else if (strcmp(keyboard_key, "left") == 0) { new_name_cnt--; } else if (strcmp(keyboard_key, "right") == 0) { new_name_cnt++; } else if (strcmp(keyboard_key, "space") == 0) { keyboard_add_char("", 0.0, 0.0, 0, ' ', 0); } else if (keyboard_key[1] == 0) { keyboard_add_char("", 0.0, 0.0, 0, keyboard_key[0], 0); } keyboard_key[0] = 0; } }
void UAVT_gui_show(ESContext *esContext) { uint16_t ny = 0; uint16_t nn = 0; if (show_num == 1) { UAVT_gui_ActuatorSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "ActuatorSettingsShow", VIEW_MODE_FCMENU, "ActuatorSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)1); } } nn++; if (show_num == 2) { UAVT_gui_AirspeedSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "AirspeedSettingsShow", VIEW_MODE_FCMENU, "AirspeedSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)2); } } nn++; if (show_num == 3) { UAVT_gui_AltitudeHoldSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "AltitudeHoldSettingsShow", VIEW_MODE_FCMENU, "AltitudeHoldSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)3); } } nn++; if (show_num == 4) { UAVT_gui_AttitudeSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "AttitudeSettingsShow", VIEW_MODE_FCMENU, "AttitudeSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)4); } } nn++; if (show_num == 5) { UAVT_gui_BrushlessGimbalSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "BrushlessGimbalSettingsShow", VIEW_MODE_FCMENU, "BrushlessGimbalSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)5); } } nn++; if (show_num == 6) { UAVT_gui_CameraStabSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "CameraStabSettingsShow", VIEW_MODE_FCMENU, "CameraStabSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)6); } } nn++; if (show_num == 7) { UAVT_gui_FaultSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "FaultSettingsShow", VIEW_MODE_FCMENU, "FaultSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)7); } } nn++; if (show_num == 8) { UAVT_gui_FixedWingAirspeeds_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "FixedWingAirspeedsShow", VIEW_MODE_FCMENU, "FixedWingAirspeeds ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)8); } } nn++; if (show_num == 9) { UAVT_gui_FixedWingPathFollowerSettingsCC_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "FixedWingPathFollowerSettingsCCShow", VIEW_MODE_FCMENU, "FixedWingPathFollowerSettingsCC ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)9); } } nn++; if (show_num == 10) { UAVT_gui_FixedWingPathFollowerSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "FixedWingPathFollowerSettingsShow", VIEW_MODE_FCMENU, "FixedWingPathFollowerSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)10); } } nn++; if (show_num == 11) { UAVT_gui_FlightBatterySettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "FlightBatterySettingsShow", VIEW_MODE_FCMENU, "FlightBatterySettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)11); } } nn++; if (show_num == 12) { UAVT_gui_FlightPlanSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "FlightPlanSettingsShow", VIEW_MODE_FCMENU, "FlightPlanSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)12); } } nn++; if (show_num == 13) { UAVT_gui_GeoFenceSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "GeoFenceSettingsShow", VIEW_MODE_FCMENU, "GeoFenceSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)13); } } nn++; if (show_num == 14) { UAVT_gui_GroundPathFollowerSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "GroundPathFollowerSettingsShow", VIEW_MODE_FCMENU, "GroundPathFollowerSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)14); } } nn++; if (show_num == 15) { UAVT_gui_HomeLocation_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HomeLocationShow", VIEW_MODE_FCMENU, "HomeLocation ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)15); } } nn++; if (show_num == 16) { UAVT_gui_HoTTSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HoTTSettingsShow", VIEW_MODE_FCMENU, "HoTTSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)16); } } nn++; if (show_num == 17) { UAVT_gui_HwColibri_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwColibriShow", VIEW_MODE_FCMENU, "HwColibri (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)17); } } nn++; if (show_num == 18) { UAVT_gui_HwCopterControl_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwCopterControlShow", VIEW_MODE_FCMENU, "HwCopterControl (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)18); } } nn++; if (show_num == 19) { UAVT_gui_HwDiscoveryF4_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwDiscoveryF4Show", VIEW_MODE_FCMENU, "HwDiscoveryF4 (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)19); } } nn++; if (show_num == 20) { UAVT_gui_HwFlyingF3_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwFlyingF3Show", VIEW_MODE_FCMENU, "HwFlyingF3 (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)20); } } nn++; if (show_num == 21) { UAVT_gui_HwFlyingF4_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwFlyingF4Show", VIEW_MODE_FCMENU, "HwFlyingF4 (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)21); } } nn++; if (show_num == 22) { UAVT_gui_HwFreedom_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwFreedomShow", VIEW_MODE_FCMENU, "HwFreedom (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)22); } } nn++; if (show_num == 23) { UAVT_gui_HwQuanton_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwQuantonShow", VIEW_MODE_FCMENU, "HwQuanton (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)23); } } nn++; if (show_num == 24) { UAVT_gui_HwRevolution_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwRevolutionShow", VIEW_MODE_FCMENU, "HwRevolution (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)24); } } nn++; if (show_num == 25) { UAVT_gui_HwRevoMini_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwRevoMiniShow", VIEW_MODE_FCMENU, "HwRevoMini (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)25); } } nn++; if (show_num == 26) { UAVT_gui_HwSparkyBGC_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwSparkyBGCShow", VIEW_MODE_FCMENU, "HwSparkyBGC (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)26); } } nn++; if (show_num == 27) { UAVT_gui_HwSparky_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "HwSparkyShow", VIEW_MODE_FCMENU, "HwSparky (HardwareSettings)", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)27); } } nn++; if (show_num == 28) { UAVT_gui_I2CVMUserProgram_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "I2CVMUserProgramShow", VIEW_MODE_FCMENU, "I2CVMUserProgram ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)28); } } nn++; if (show_num == 29) { UAVT_gui_INSSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "INSSettingsShow", VIEW_MODE_FCMENU, "INSSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)29); } } nn++; if (show_num == 30) { UAVT_gui_LoggingSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "LoggingSettingsShow", VIEW_MODE_FCMENU, "LoggingSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)30); } } nn++; if (show_num == 31) { UAVT_gui_ManualControlSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "ManualControlSettingsShow", VIEW_MODE_FCMENU, "ManualControlSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)31); } } nn++; if (show_num == 32) { UAVT_gui_MixerSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "MixerSettingsShow", VIEW_MODE_FCMENU, "MixerSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)32); } } nn++; if (show_num == 33) { UAVT_gui_ModuleSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "ModuleSettingsShow", VIEW_MODE_FCMENU, "ModuleSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)33); } } nn++; if (show_num == 34) { UAVT_gui_MWRateSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "MWRateSettingsShow", VIEW_MODE_FCMENU, "MWRateSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)34); } } nn++; if (show_num == 35) { UAVT_gui_OPLinkSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "OPLinkSettingsShow", VIEW_MODE_FCMENU, "OPLinkSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)35); } } nn++; if (show_num == 36) { UAVT_gui_OveroSyncSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "OveroSyncSettingsShow", VIEW_MODE_FCMENU, "OveroSyncSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)36); } } nn++; if (show_num == 37) { UAVT_gui_PathPlannerSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "PathPlannerSettingsShow", VIEW_MODE_FCMENU, "PathPlannerSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)37); } } nn++; if (show_num == 38) { UAVT_gui_PicoCSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "PicoCSettingsShow", VIEW_MODE_FCMENU, "PicoCSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)38); } } nn++; if (show_num == 39) { UAVT_gui_SensorSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "SensorSettingsShow", VIEW_MODE_FCMENU, "SensorSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)39); } } nn++; if (show_num == 40) { UAVT_gui_StabilizationSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "StabilizationSettingsShow", VIEW_MODE_FCMENU, "StabilizationSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)40); } } nn++; if (show_num == 41) { UAVT_gui_StateEstimation_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "StateEstimationShow", VIEW_MODE_FCMENU, "StateEstimation ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)41); } } nn++; if (show_num == 42) { UAVT_gui_SystemIdent_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "SystemIdentShow", VIEW_MODE_FCMENU, "SystemIdent ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)42); } } nn++; if (show_num == 43) { UAVT_gui_SystemSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "SystemSettingsShow", VIEW_MODE_FCMENU, "SystemSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)43); } } nn++; if (show_num == 44) { UAVT_gui_TrimAnglesSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "TrimAnglesSettingsShow", VIEW_MODE_FCMENU, "TrimAnglesSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)44); } } nn++; if (show_num == 45) { UAVT_gui_TxPIDSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "TxPIDSettingsShow", VIEW_MODE_FCMENU, "TxPIDSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)45); } } nn++; if (show_num == 46) { UAVT_gui_VibrationAnalysisSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "VibrationAnalysisSettingsShow", VIEW_MODE_FCMENU, "VibrationAnalysisSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)46); } } nn++; if (show_num == 47) { UAVT_gui_VtolPathFollowerSettings_show(esContext); } else if (show_num == 0) { if (nn >= msy && nn < msy + 14) { draw_text_button(esContext, "VtolPathFollowerSettingsShow", VIEW_MODE_FCMENU, "VtolPathFollowerSettings ()", FONT_WHITE, -1.2, -0.9 + ny++ * 0.12, 0.002, 0.08, ALIGN_LEFT, ALIGN_TOP, UAVT_gui_show_num_change, (float)47); } } nn++; if (msy > nn - 14) { msy = nn - 14; } if (sy > nn - 14) { sy = nn - 14; } if (show_num != 0) { draw_text_button(esContext, "gui_scroll", VIEW_MODE_FCMENU, "[SCROLL]", FONT_WHITE, 0.9, 0.9, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, UAVT_gui_scroll, 0.0); } if (show_num == 0) { draw_text_button(esContext, "gui_main_scroll", VIEW_MODE_FCMENU, "[SCROLL]", FONT_WHITE, 0.9, 0.9, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, UAVT_gui_main_scroll, 0.0); } else { draw_text_button(esContext, "gui_show_num_change", VIEW_MODE_FCMENU, "[BACK]", FONT_WHITE, 0.0, 0.9, 0.002, 0.06, ALIGN_CENTER, ALIGN_TOP, UAVT_gui_show_num_change, 0.0); } }
void swarm_draw_setup(ESContext *esContext) { int n = 0; int ny = 1; int gx = 0; int gy = 0; char tmp_str[128]; char tmp_str2[128]; float px1 = -0.8; float py1 = -0.9; float px2 = 0.9; float py2 = 0.1; float sy = 0.08; reset_buttons(); EntryList list[3]; list[0].name = "ROLE"; list[1].name = "OFFSET"; list[2].name = NULL; draw_window(esContext, px1, py1, px2, py2, 0.002, "SwarmSetup.options", "Swarm-Setup", list, SwarmSetup.options, swarm_set); if (SwarmSetup.options == 0) { draw_text_button(esContext, "master_title", setup.view_mode, "Master:", FONT_WHITE, px1, py1 + (float)ny * sy, 0.005, 0.06, ALIGN_LEFT, ALIGN_TOP, swarm_set, 0.0); ny++; uint8_t n2 = 0; EntryList list[MODELS_MAX + 2]; list[0].name = "GCS"; for (n2 = 0; n2 < MODELS_MAX; n2++) { list[n2 + 1].name = ModelData[n2].name; } list[n2 + 1].name = NULL; draw_pulldown(esContext, px1 + 0.1, py1 + (float)ny * sy, 0.45, 0.01, "SwarmSetup.master", list, pd_openm, SwarmSetup.master + 1, swarm_set); ny++; draw_text_button(esContext, "sclave_title", setup.view_mode, "Slaves:", FONT_WHITE, px1, py1 + (float)ny * sy, 0.005, 0.06, ALIGN_LEFT, ALIGN_TOP, swarm_set, 0.0); ny++; for (n = 0; n < 4; n++) { sprintf(tmp_str2, "SwarmSetup.slave%i", n); draw_pulldown(esContext, px1 + 0.1, py1 + (float)ny * sy, 0.44, 0.01, tmp_str2, list, pd_open[n], SwarmSetup.slave[n] + 1, swarm_set); sprintf(tmp_str, "X=%im", SwarmSetup.offset_x[n]); sprintf(tmp_str2, "SwarmSetup.offx%i", n); draw_spinbox(esContext, px1 + 0.55, py1 + (float)ny * sy, 0.34, 0.01, tmp_str2, "X=%0.0fm", SwarmSetup.offset_x[n], swarm_set); sprintf(tmp_str, "Y=%im", SwarmSetup.offset_y[n]); sprintf(tmp_str2, "SwarmSetup.offy%i", n); draw_spinbox(esContext, px1 + 0.9, py1 + (float)ny * sy, 0.34, 0.01, tmp_str2, "Y=%0.0fm", SwarmSetup.offset_y[n], swarm_set); sprintf(tmp_str, "Z=%im", SwarmSetup.offset_z[n]); sprintf(tmp_str2, "SwarmSetup.offz%i", n); draw_spinbox(esContext, px1 + 1.25, py1 + (float)ny * sy, 0.34, 0.01, tmp_str2, "Z=%0.0fm", SwarmSetup.offset_z[n], swarm_set); ny++; } ny++; draw_text_button(esContext, "swarm_yawmode_", setup.view_mode, "Yaw-Rotate", FONT_GREEN, px1 + 0.1, py1 + (float)ny * sy, 0.005, 0.06, ALIGN_LEFT, ALIGN_TOP, swarm_set, 0.0); draw_checkbox(esContext, px1 + 0.7, py1 + (float)ny * sy, 0.005, "swarm_yawmode", SwarmSetup.yaw_mode, swarm_set); ny++; draw_text_button(esContext, "swarm_rotate_", setup.view_mode, "Pattern-Rotate", FONT_GREEN, px1 + 0.1, py1 + (float)ny * sy, 0.005, 0.06, ALIGN_LEFT, ALIGN_TOP, swarm_set, 0.0); draw_checkbox(esContext, px1 + 0.7, py1 + (float)ny * sy, 0.005, "swarm_rotate", SwarmSetup.rotate, swarm_set); ny++; } else { float gx1 = px1 + 0.5; float gx2 = px2 - 0.1; float gy1 = py1 + 0.15; float gy2 = py2 - 0.15; int gxn = 80; int gyn = 40; ny++; ny++; sprintf(tmp_str, "SLAVE=%i", SwarmSetup.selected); draw_text_button(esContext, "SwarmSetup.selected", setup.view_mode, tmp_str, FONT_GREEN, px1 + 0.01, py1 + (float)ny * sy, 0.005, 0.06, ALIGN_LEFT, ALIGN_TOP, swarm_set, 0.0); ny++; sprintf(tmp_str, "%s", ModelData[SwarmSetup.slave[SwarmSetup.selected]].name); draw_text_button(esContext, "SwarmSetup.offn", setup.view_mode, tmp_str, FONT_GREEN, px1 + 0.01, py1 + (float)ny * sy, 0.005, 0.06, ALIGN_LEFT, ALIGN_TOP, swarm_set, (float)SwarmSetup.selected); ny++; sprintf(tmp_str, "X=%im", SwarmSetup.offset_x[SwarmSetup.selected]); draw_text_button(esContext, "SwarmSetup.offx", setup.view_mode, tmp_str, FONT_GREEN, px1 + 0.01, py1 + (float)ny * sy, 0.005, 0.06, ALIGN_LEFT, ALIGN_TOP, swarm_set, (float)SwarmSetup.selected); ny++; sprintf(tmp_str, "Y=%im", SwarmSetup.offset_y[SwarmSetup.selected]); draw_text_button(esContext, "SwarmSetup.offy", setup.view_mode, tmp_str, FONT_GREEN, px1 + 0.01, py1 + (float)ny * sy, 0.005, 0.06, ALIGN_LEFT, ALIGN_TOP, swarm_set, (float)SwarmSetup.selected); ny++; sprintf(tmp_str, "Z=%im", SwarmSetup.offset_z[SwarmSetup.selected]); draw_text_button(esContext, "SwarmSetup.offz", setup.view_mode, tmp_str, FONT_GREEN, px1 + 0.01, py1 + (float)ny * sy, 0.005, 0.06, ALIGN_LEFT, ALIGN_TOP, swarm_set, (float)SwarmSetup.selected); ny++; for (gx = 0; gx <= gxn; gx++) { draw_line_f3(esContext, gx1 + (float)gx * ((gx2 - gx1) / (float)gxn), gy1, 0.006, gx1 + (float)gx * ((gx2 - gx1) / (float)gxn), gy2, 0.006, 255, 255, 255, 90); } for (gy = 0; gy <= gyn; gy++) { draw_line_f3(esContext, gx1, gy1 + (float)gy * ((gy2 - gy1) / (float)gyn), 0.006, gx2, gy1 + (float)gy * ((gy2 - gy1) / (float)gyn), 0.006, 255, 255, 255, 90); } draw_circleFilled_f3(esContext, gx1 + (gx2 - gx1) / 2.0, gy1 + (gy2 - gy1) / 2.0, 0.007, 0.01, 255, 0, 0, 255); for (n = 0; n < 4; n++) { if (SwarmSetup.slave[n] == -1) { continue; } float offx = SwarmSetup.offset_x[n] / 50.0; float offy = SwarmSetup.offset_y[n] / 50.0; draw_circleFilled_f3(esContext, gx1 + (gx2 - gx1) / 2.0 + offx, gy1 + (gy2 - gy1) / 2.0 + offy, 0.007, 0.01, 255, 255, 0, 255); if (n == SwarmSetup.selected) { draw_circle_f3(esContext, gx1 + (gx2 - gx1) / 2.0 + offx, gy1 + (gy2 - gy1) / 2.0 + offy, 0.007, 0.02, 255, 0, 255, 255); } } } draw_buttonbox(esContext, "swarm_setup_done", setup.view_mode, "CLOSE", px2 - 0.33, py2 - 0.1, 0.3, 0.005, swarm_set, 0.0); }