From efdfa2b8b4aa5ef6fb81a237cf8a79276bb4e382 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Wed, 14 Nov 2012 00:33:26 +0100 Subject: [PATCH 01/26] Setup skeleton code (basic daemon). --- apps/hott_telemetry/Makefile | 42 +++++++ apps/hott_telemetry/hott_telemetry_main.c | 140 ++++++++++++++++++++++ nuttx/configs/px4fmu/nsh/appconfig | 1 + 3 files changed, 183 insertions(+) create mode 100644 apps/hott_telemetry/Makefile create mode 100644 apps/hott_telemetry/hott_telemetry_main.c diff --git a/apps/hott_telemetry/Makefile b/apps/hott_telemetry/Makefile new file mode 100644 index 0000000000..06336d4511 --- /dev/null +++ b/apps/hott_telemetry/Makefile @@ -0,0 +1,42 @@ +############################################################################ +# +# Copyright (C) 2012 PX4 Development Team. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name PX4 nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +# +# Basic example application +# + +APPNAME = hott_telemetry +PRIORITY = SCHED_PRIORITY_DEFAULT +STACKSIZE = 2048 + +include $(APPDIR)/mk/app.mk diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c new file mode 100644 index 0000000000..0350c29df9 --- /dev/null +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -0,0 +1,140 @@ +/**************************************************************************** + * + * Copyright (C) 2012 PX4 Development Team. All rights reserved. + * Author: @author Simon Wilks + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name PX4 nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/** + * @file hott_telemetry_main.c + * + * Graupner HoTT Telemetry implementation. + */ + +#include +#include +#include + +#include + +static bool thread_should_exit = false; /**< Deamon exit flag */ +static bool thread_running = false; /**< Deamon status flag */ +static int deamon_task; /**< Handle of deamon task / thread */ + +/** + * Deamon management function. + */ +__EXPORT int hott_telemetry_main(int argc, char *argv[]); + +/** + * Mainloop of deamon. + */ +int hott_telemetry_thread_main(int argc, char *argv[]); + +/** + * Print the correct usage. + */ +static void usage(const char *reason); + +static void +usage(const char *reason) +{ + if (reason) + fprintf(stderr, "%s\n", reason); + fprintf(stderr, "usage: deamon {start|stop|status} [-p ]\n\n"); + exit(1); +} + +/** + * The deamon app only briefly exists to start + * the background job. The stack size assigned in the + * Makefile does only apply to this management task. + * + * The actual stack size should be set in the call + * to task_create(). + */ +int hott_telemetry_main(int argc, char *argv[]) +{ + if (argc < 1) + usage("missing command"); + + if (!strcmp(argv[1], "start")) { + + if (thread_running) { + printf("deamon already running\n"); + /* this is not an error */ + exit(0); + } + + thread_should_exit = false; + deamon_task = task_spawn("hott_telemetry", + SCHED_DEFAULT, + SCHED_PRIORITY_DEFAULT, + 4096, + hott_telemetry_thread_main, + (argv) ? (const char **)&argv[2] : (const char **)NULL); + exit(0); + } + + if (!strcmp(argv[1], "stop")) { + thread_should_exit = true; + exit(0); + } + + if (!strcmp(argv[1], "status")) { + if (thread_running) { + printf("\thott_telemetry is running\n"); + } else { + printf("\thott_telemetry not started\n"); + } + exit(0); + } + + usage("unrecognized command"); + exit(1); +} + +int hott_telemetry_thread_main(int argc, char *argv[]) { + + printf("[hott_telemetry] starting\n"); + + thread_running = true; + + while (!thread_should_exit) { + printf("The HoTT telemetry deamon is here!\n"); + sleep(10); + } + + printf("[deamon] exiting.\n"); + + thread_running = false; + + return 0; +} diff --git a/nuttx/configs/px4fmu/nsh/appconfig b/nuttx/configs/px4fmu/nsh/appconfig index 798f57e93c..5659960831 100644 --- a/nuttx/configs/px4fmu/nsh/appconfig +++ b/nuttx/configs/px4fmu/nsh/appconfig @@ -80,6 +80,7 @@ CONFIGURED_APPS += fixedwing_att_control CONFIGURED_APPS += fixedwing_pos_control CONFIGURED_APPS += position_estimator CONFIGURED_APPS += attitude_estimator_ekf +CONFIGURED_APPS += hott_telemetry # Hacking tools #CONFIGURED_APPS += system/i2c From 46ab48ab942a1505d4916a2443c62d020a6cb67a Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Wed, 14 Nov 2012 00:36:01 +0100 Subject: [PATCH 02/26] Added a missing comment. --- apps/hott_telemetry/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/hott_telemetry/Makefile b/apps/hott_telemetry/Makefile index 06336d4511..4660f89a33 100644 --- a/apps/hott_telemetry/Makefile +++ b/apps/hott_telemetry/Makefile @@ -32,7 +32,7 @@ ############################################################################ # -# Basic example application +# Graupner HoTT Telemetry application. # APPNAME = hott_telemetry From aa7873dee1d8f5e24b5995f61f3cf922cd3621e9 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Wed, 21 Nov 2012 00:16:43 +0100 Subject: [PATCH 03/26] Introducing an initial implementation of HoTT telemetry support. --- apps/hott_telemetry/Makefile | 2 + apps/hott_telemetry/hott_telemetry_main.c | 213 ++++++++++++++++++++-- apps/hott_telemetry/messages.c | 75 ++++++++ apps/hott_telemetry/messages.h | 113 ++++++++++++ 4 files changed, 384 insertions(+), 19 deletions(-) create mode 100644 apps/hott_telemetry/messages.c create mode 100644 apps/hott_telemetry/messages.h diff --git a/apps/hott_telemetry/Makefile b/apps/hott_telemetry/Makefile index 4660f89a33..528306dab0 100644 --- a/apps/hott_telemetry/Makefile +++ b/apps/hott_telemetry/Makefile @@ -35,6 +35,8 @@ # Graupner HoTT Telemetry application. # +INCLUDES = $(TOPDIR)/arch/arm/src/stm32 $(TOPDIR)/arch/arm/src/common + APPNAME = hott_telemetry PRIORITY = SCHED_PRIORITY_DEFAULT STACKSIZE = 2048 diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index 0350c29df9..c5932baeba 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -36,16 +36,31 @@ * @file hott_telemetry_main.c * * Graupner HoTT Telemetry implementation. + * + * The HoTT receiver polls each device at a regular interval at which point + * a data packet can be returned if necessary. */ +#include #include -#include +#include +#include #include - +#include +#include +#include #include -static bool thread_should_exit = false; /**< Deamon exit flag */ -static bool thread_running = false; /**< Deamon status flag */ +#include "messages.h" + +// The following are equired for UART direct manipulation. +#include +#include "up_arch.h" +#include "chip.h" +#include "stm32_internal.h" + +static int thread_should_exit = false; /**< Deamon exit flag */ +static int thread_running = false; /**< Deamon status flag */ static int deamon_task; /**< Handle of deamon task / thread */ /** @@ -58,10 +73,109 @@ __EXPORT int hott_telemetry_main(int argc, char *argv[]); */ int hott_telemetry_thread_main(int argc, char *argv[]); -/** - * Print the correct usage. - */ -static void usage(const char *reason); +static int read_data(int uart); +static int send_data(int uart, const struct eam_module_msg *msg); +static void uart_disable_rx(void); +static void uart_disable_tx(void); + +static int open_uart(const char *uart_name, struct termios *uart_config_original) +{ + /* baud rate */ + int speed = B19200; + int uart; + + /* open uart */ + uart = open(uart_name, O_RDWR | O_NOCTTY); + + if (uart < 0) { + fprintf(stderr, "[hott_telemetry] ERROR opening port: %s\n", uart_name); + return ERROR; + } + + /* Try to set baud rate */ + struct termios uart_config; + int termios_state; + + /* Back up the original uart configuration to restore it after exit */ + if ((termios_state = tcgetattr(uart, uart_config_original)) < 0) { + fprintf(stderr, "[hott_telemetry] ERROR getting baudrate / termios config for %s: %d\n", uart_name, termios_state); + close(uart); + return ERROR; + } + + /* Fill the struct for the new configuration */ + tcgetattr(uart, &uart_config); + + /* Clear ONLCR flag (which appends a CR for every LF) */ + uart_config.c_oflag &= ~ONLCR; + + /* Set baud rate */ + if (cfsetispeed(&uart_config, speed) < 0 || cfsetospeed(&uart_config, speed) < 0) { + fprintf(stderr, "[hott_telemetry] ERROR setting baudrate / termios config for %s: %d (cfsetispeed, cfsetospeed)\n", uart_name, termios_state); + close(uart); + return ERROR; + } + + if ((termios_state = tcsetattr(uart, TCSANOW, &uart_config)) < 0) { + fprintf(stderr, "[hott_telemetry] ERROR setting baudrate / termios config for %s (tcsetattr)\n", uart_name); + close(uart); + return ERROR; + } + + return uart; +} + +int hott_telemetry_thread_main(int argc, char *argv[]) +{ + printf("[hott_telemetry] starting\n"); + + thread_running = true; + + char *device = "/dev/ttyS2"; // UART5 + char *commandline_usage = "\tusage: hott_telemetry start|status|stop [-d device]\n"; + + /* read commandline arguments */ + for (int i = 0; i < argc && argv[i]; i++) { + if (strcmp(argv[i], "-d") == 0 || strcmp(argv[i], "--device") == 0) { //device set + if (argc > i + 1) { + device = argv[i + 1]; + + } else { + thread_running = false; + errx(1, "missing parameter to -m 1..4\n %s", commandline_usage); + } + } + } + + /* enable UART, writes potentially an empty buffer, but multiplexing is disabled */ + struct termios uart_config_original; + int uart = open_uart(device, &uart_config_original); + + if (uart < 0) { + fprintf(stderr, "[hott_telemetry] Failed opening HoTT UART, exiting.\n"); + thread_running = false; + exit(ERROR); + } + + messages_init(); + + struct eam_module_msg msg; + while (!thread_should_exit) { + build_eam_response(&msg); + if (read_data(uart) == OK) { + send_data(uart, &msg); + } + } + + printf("[hott_telemetry] exiting.\n"); + + /* close uarts */ + close(uart); + + thread_running = false; + + return 0; +} static void usage(const char *reason) @@ -96,8 +210,8 @@ int hott_telemetry_main(int argc, char *argv[]) thread_should_exit = false; deamon_task = task_spawn("hott_telemetry", SCHED_DEFAULT, - SCHED_PRIORITY_DEFAULT, - 4096, + SCHED_PRIORITY_MAX - 20, + 2048, hott_telemetry_thread_main, (argv) ? (const char **)&argv[2] : (const char **)NULL); exit(0); @@ -121,20 +235,81 @@ int hott_telemetry_main(int argc, char *argv[]) exit(1); } -int hott_telemetry_thread_main(int argc, char *argv[]) { +int read_data(int uart) +{ + uart_disable_tx(); - printf("[hott_telemetry] starting\n"); + const int timeout = 1000; + struct pollfd fds[] = { { .fd = uart, .events = POLLIN } }; - thread_running = true; + if (poll(fds, 1, timeout) > 0) { + // get the mode: binary or text + char mode; + read(uart, &mode, 1); + + // read the poll ID (device ID being targetted) + char id; + read(uart, &id, 1); - while (!thread_should_exit) { - printf("The HoTT telemetry deamon is here!\n"); - sleep(10); + //printf("Reading: mode='%x' id='%x'\n", mode, id); + + // if we have a binary mode request for our sensor ID let's run with it + if (mode != BINARY_MODE_REQUEST_ID || id != ELECTRIC_AIR_MODULE) { + return ERROR; // not really an error, rather uninteresting. + } + } else { + printf("Timeout\n"); + return ERROR; } + return OK; +} - printf("[deamon] exiting.\n"); +int send_data(int uart, const struct eam_module_msg *msg) +{ + usleep(POST_READ_DELAY_IN_USECS); - thread_running = false; + uart_disable_rx(); - return 0; + uint16_t checksum = 0; + int size = sizeof(*msg); + char buffer[size]; + + memcpy(buffer, msg, size); + + for(int i = 0; i < size; i++) { + if (i == size - 1) { + // Set the checksum: the first uint8_t is taken as the checksum. + buffer[i] = checksum & 0xff; + } else { + checksum += buffer[i]; + } + + //printf("%x ", buffer[i]); + write(uart, &buffer[i], 1); + + // Sleep before sending the next uint8_t. + usleep(POST_WRITE_DELAY_IN_USECS); + } + + return OK; } + +void uart_disable_rx() +{ + uint32_t cr; + cr = getreg32(STM32_UART5_CR1); + cr &= ~(USART_CR1_RE); // turn off RX + cr |= (USART_CR1_TE); // turn on TX + putreg32(cr, STM32_UART5_CR1); +} + +void uart_disable_tx() +{ + uint32_t cr; + cr = getreg32(STM32_UART5_CR1); + cr |= (USART_CR1_RE); // turn on RX + cr &= ~(USART_CR1_TE); // turn off TX + putreg32(cr, STM32_UART5_CR1); +} + + diff --git a/apps/hott_telemetry/messages.c b/apps/hott_telemetry/messages.c new file mode 100644 index 0000000000..eee78a01e8 --- /dev/null +++ b/apps/hott_telemetry/messages.c @@ -0,0 +1,75 @@ +/**************************************************************************** + * + * Copyright (C) 2012 PX4 Development Team. All rights reserved. + * Author: @author Simon Wilks + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name PX4 nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/** + * @file messages.c + * + */ + +#include "messages.h" + +#include +#include +#include +#include + +static int sensor_sub = -1; + +void messages_init(void) +{ + sensor_sub = orb_subscribe(ORB_ID(sensor_combined)); +} + +void build_eam_response(struct eam_module_msg *msg) +{ + /* get a local copy of the current sensor values */ + struct sensor_combined_s raw; + memset(&raw, 0, sizeof(raw)); + orb_copy(ORB_ID(sensor_combined), sensor_sub, &raw); + + memset(msg, 0, sizeof(*msg)); + + msg->start = START_BYTE; + msg->eam_sensor_id = ELECTRIC_AIR_MODULE; + msg->sensor_id = EAM_SENSOR_ID; + msg->temperature1 = (uint8_t)(raw.baro_temp_celcius + 20); + msg->temperature2 = TEMP_ZERO_CELSIUS; + msg->main_voltage_L = (uint8_t)(raw.battery_voltage_v * 10); + + uint16_t alt = (uint16_t)(raw.baro_alt_meter + 500); + msg->altitude_L = (uint8_t)alt & 0xff; + msg->altitude_H = (uint8_t)(alt >> 8) & 0xff; + + msg->stop = STOP_BYTE; +} \ No newline at end of file diff --git a/apps/hott_telemetry/messages.h b/apps/hott_telemetry/messages.h new file mode 100644 index 0000000000..562010a06e --- /dev/null +++ b/apps/hott_telemetry/messages.h @@ -0,0 +1,113 @@ +/**************************************************************************** + * + * Copyright (C) 2012 PX4 Development Team. All rights reserved. + * Author: @author Simon Wilks + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name PX4 nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/** + * @file messages.h + * + * Graupner HoTT Telemetry message generator. + * + */ +#ifndef MESSAGES_H_ +#define MESSAGES_H + +#include + +// The HoTT receiver demands a minimum 5ms period of silence after delivering its request. +#define POST_READ_DELAY_IN_USECS 4500 +// A pause of 3ms is required between each uint8_t sent back to the HoTT receiver. Much lower +// values can be used in practise though. +#define POST_WRITE_DELAY_IN_USECS 1500 + +// Protocol constants. +#define BINARY_MODE_REQUEST_ID 0x80 // Binary mode request. +#define START_BYTE 0x7c +#define STOP_BYTE 0x7d +#define TEMP_ZERO_CELSIUS 0x14 + +// Electric Air Module (EAM) constants. +#define ELECTRIC_AIR_MODULE 0x8e +#define EAM_SENSOR_ID 0xe0 + +struct eam_module_msg { + uint8_t start; /**< Start byte */ + uint8_t eam_sensor_id; /**< EAM sensor ID */ + uint8_t warning; + uint8_t sensor_id; /**< Sensor ID, why different? */ + uint8_t alarm_inverse1; + uint8_t alarm_inverse2; + uint8_t cell1_L; /**< Lipo cell voltages. Not supported. */ + uint8_t cell2_L; + uint8_t cell3_L; + uint8_t cell4_L; + uint8_t cell5_L; + uint8_t cell6_L; + uint8_t cell7_L; + uint8_t cell1_H; + uint8_t cell2_H; + uint8_t cell3_H; + uint8_t cell4_H; + uint8_t cell5_H; + uint8_t cell6_H; + uint8_t cell7_H; + uint8_t batt1_voltage_L; /**< Battery 1 voltage, lower 8-bits in steps of 0.02V */ + uint8_t batt1_voltage_H; + uint8_t batt2_voltage_L; /**< Battery 2 voltage, lower 8-bits in steps of 0.02V */ + uint8_t batt2_voltage_H; + uint8_t temperature1; /**< Temperature sensor 1. 20 = 0 degrees */ + uint8_t temperature2; + uint8_t altitude_L; /**< Attitude (meters) lower 8-bits. 500 = 0 meters */ + uint8_t altitude_H; + uint8_t current_L; /**< Current (mAh) lower 8-bits in steps of 0.1V */ + uint8_t current_H; + uint8_t main_voltage_L; /**< Main power voltage lower 8-bits in steps of 0.1V */ + uint8_t main_voltage_H; + uint8_t battery_capacity_L; /**< Used battery capacity in steps of 10mAh */ + uint8_t battery_capacity_H; + uint8_t climbrate_L; /**< Climb rate in 0.01m/s. 0m/s = 30000 */ + uint8_t climbrate_H; + uint8_t climbrate_3s; /**< Climb rate in m/3sec. 0m/3sec = 120 */ + uint8_t rpm_L; /**< RPM Lower 8-bits In steps of 10 U/min */ + uint8_t rpm_H; + uint8_t electric_min; /**< Flight time in minutes. */ + uint8_t electric_sec; /**< Flight time in seconds. */ + uint8_t speed_L; /**< Airspeed in km/h in steps of 1 km/h */ + uint8_t speed_H; + uint8_t stop; /**< Stop byte */ + uint8_t checksum; /**< Lower 8-bits of all bytes summed. */ +}; + +void messages_init(void); +void build_eam_response(struct eam_module_msg *msg); + +#endif /* MESSAGES_H_ */ From 6894c4d1bfaf5b8c43705b8b758788ebf31e17f9 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Wed, 21 Nov 2012 00:19:45 +0100 Subject: [PATCH 04/26] Added a note on the inclusion of libraries for UART access in the Makefile. --- apps/hott_telemetry/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/hott_telemetry/Makefile b/apps/hott_telemetry/Makefile index 528306dab0..8d5faa3b7f 100644 --- a/apps/hott_telemetry/Makefile +++ b/apps/hott_telemetry/Makefile @@ -35,6 +35,7 @@ # Graupner HoTT Telemetry application. # +# The following line is required for accessing UARTs directly. INCLUDES = $(TOPDIR)/arch/arm/src/stm32 $(TOPDIR)/arch/arm/src/common APPNAME = hott_telemetry From 054c65535f41c788a6db2accf1f920eaf3d05ff4 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Wed, 21 Nov 2012 23:37:20 +0100 Subject: [PATCH 05/26] General code cleanup. --- apps/hott_telemetry/hott_telemetry_main.c | 193 ++++++++++++---------- apps/hott_telemetry/messages.h | 9 +- 2 files changed, 111 insertions(+), 91 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index c5932baeba..00b8f8d665 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -39,6 +39,15 @@ * * The HoTT receiver polls each device at a regular interval at which point * a data packet can be returned if necessary. + * + * NOTE: Since HoTT telemetry works half-duplex over a single wire the wire + * is connected to both the UART TX and RX port. In order to send and receive + * we need to be able to disable one of these ports at a time. This level of + * control is currently not provided by Nuttx (yet) so we need to do this + * at the hardware level for now. + * + * TODO: Add support for at least the vario and GPS sensors. + * */ #include @@ -53,7 +62,7 @@ #include "messages.h" -// The following are equired for UART direct manipulation. +/* The following are equired for UART direct manipulation. */ #include #include "up_arch.h" #include "chip.h" @@ -62,7 +71,7 @@ static int thread_should_exit = false; /**< Deamon exit flag */ static int thread_running = false; /**< Deamon status flag */ static int deamon_task; /**< Handle of deamon task / thread */ - +static uint32_t uart_addr; /**< The regsitry address of the UART for direct access */ /** * Deamon management function. */ @@ -77,6 +86,7 @@ static int read_data(int uart); static int send_data(int uart, const struct eam_module_msg *msg); static void uart_disable_rx(void); static void uart_disable_tx(void); +static uint32_t get_uart_address(const char *device); static int open_uart(const char *uart_name, struct termios *uart_config_original) { @@ -125,14 +135,100 @@ static int open_uart(const char *uart_name, struct termios *uart_config_original return uart; } +int read_data(int uart) +{ + uart_disable_tx(); + + const int timeout = 1000; + struct pollfd fds[] = { { .fd = uart, .events = POLLIN } }; + + if (poll(fds, 1, timeout) > 0) { + /* get the mode: binary or text */ + char mode; + read(uart, &mode, 1); + + /* read the poll ID (device ID being targetted) */ + char id; + read(uart, &id, 1); + + /* if we have a binary mode request for our sensor ID let's run with it. */ + if (mode != BINARY_MODE_REQUEST_ID || id != ELECTRIC_AIR_MODULE) { + return ERROR; // not really an error, rather uninteresting. + } + } else { + printf("Timeout\n"); + return ERROR; + } + return OK; +} + +int send_data(int uart, const struct eam_module_msg *msg) +{ + usleep(POST_READ_DELAY_IN_USECS); + + uart_disable_rx(); + + uint16_t checksum = 0; + int size = sizeof(*msg); + char buffer[size]; + + memcpy(buffer, msg, size); + + for(int i = 0; i < size; i++) { + if (i == size - 1) { + /* Set the checksum: the first uint8_t is taken as the checksum. */ + buffer[i] = checksum & 0xff; + } else { + checksum += buffer[i]; + } + + write(uart, &buffer[i], 1); + + /* Sleep before sending the next byte. */ + usleep(POST_WRITE_DELAY_IN_USECS); + } + + return OK; +} + +void uart_disable_rx(void) +{ + uint32_t cr; + cr = getreg32(uart_addr); + cr &= ~(USART_CR1_RE); // turn off RX + cr |= (USART_CR1_TE); // turn on TX + putreg32(cr, uart_addr); +} + +void uart_disable_tx(void) +{ + uint32_t cr; + cr = getreg32(uart_addr); + cr |= (USART_CR1_RE); // turn on RX + cr &= ~(USART_CR1_TE); // turn off TX + putreg32(cr, uart_addr); +} + +uint32_t get_uart_address(const char *device) +{ + /* Map the tty device number to the UART address */ + switch(device[strlen(device) - 1]) { + case '0': return STM32_USART1_CR1; + case '1': return STM32_USART2_CR1; + case '2': return STM32_UART5_CR1; + case '3': return STM32_USART6_CR1; + default: return STM32_UART5_CR1; + } +} + int hott_telemetry_thread_main(int argc, char *argv[]) { printf("[hott_telemetry] starting\n"); thread_running = true; - char *device = "/dev/ttyS2"; // UART5 char *commandline_usage = "\tusage: hott_telemetry start|status|stop [-d device]\n"; + char *device = "/dev/ttyS2"; /**< Default telemetry port: UART5 */ /* read commandline arguments */ for (int i = 0; i < argc && argv[i]; i++) { @@ -157,6 +253,11 @@ int hott_telemetry_thread_main(int argc, char *argv[]) exit(ERROR); } + /* Since we need to enable/disable both TX and RX on the UART at the device level + * we need to know the register address of the UART we are working with. Making it + * global so it's easy to remove later when TX/RX control is provided by Nuttx. */ + uart_addr = get_uart_address(device); + messages_init(); struct eam_module_msg msg; @@ -169,7 +270,6 @@ int hott_telemetry_thread_main(int argc, char *argv[]) printf("[hott_telemetry] exiting.\n"); - /* close uarts */ close(uart); thread_running = false; @@ -187,12 +287,7 @@ usage(const char *reason) } /** - * The deamon app only briefly exists to start - * the background job. The stack size assigned in the - * Makefile does only apply to this management task. - * - * The actual stack size should be set in the call - * to task_create(). + * Process command line arguments and tart the daemon. */ int hott_telemetry_main(int argc, char *argv[]) { @@ -210,7 +305,7 @@ int hott_telemetry_main(int argc, char *argv[]) thread_should_exit = false; deamon_task = task_spawn("hott_telemetry", SCHED_DEFAULT, - SCHED_PRIORITY_MAX - 20, + SCHED_PRIORITY_MAX - 40, 2048, hott_telemetry_thread_main, (argv) ? (const char **)&argv[2] : (const char **)NULL); @@ -235,81 +330,5 @@ int hott_telemetry_main(int argc, char *argv[]) exit(1); } -int read_data(int uart) -{ - uart_disable_tx(); - - const int timeout = 1000; - struct pollfd fds[] = { { .fd = uart, .events = POLLIN } }; - - if (poll(fds, 1, timeout) > 0) { - // get the mode: binary or text - char mode; - read(uart, &mode, 1); - - // read the poll ID (device ID being targetted) - char id; - read(uart, &id, 1); - - //printf("Reading: mode='%x' id='%x'\n", mode, id); - - // if we have a binary mode request for our sensor ID let's run with it - if (mode != BINARY_MODE_REQUEST_ID || id != ELECTRIC_AIR_MODULE) { - return ERROR; // not really an error, rather uninteresting. - } - } else { - printf("Timeout\n"); - return ERROR; - } - return OK; -} - -int send_data(int uart, const struct eam_module_msg *msg) -{ - usleep(POST_READ_DELAY_IN_USECS); - - uart_disable_rx(); - - uint16_t checksum = 0; - int size = sizeof(*msg); - char buffer[size]; - - memcpy(buffer, msg, size); - - for(int i = 0; i < size; i++) { - if (i == size - 1) { - // Set the checksum: the first uint8_t is taken as the checksum. - buffer[i] = checksum & 0xff; - } else { - checksum += buffer[i]; - } - - //printf("%x ", buffer[i]); - write(uart, &buffer[i], 1); - - // Sleep before sending the next uint8_t. - usleep(POST_WRITE_DELAY_IN_USECS); - } - - return OK; -} - -void uart_disable_rx() -{ - uint32_t cr; - cr = getreg32(STM32_UART5_CR1); - cr &= ~(USART_CR1_RE); // turn off RX - cr |= (USART_CR1_TE); // turn on TX - putreg32(cr, STM32_UART5_CR1); -} - -void uart_disable_tx() -{ - uint32_t cr; - cr = getreg32(STM32_UART5_CR1); - cr |= (USART_CR1_RE); // turn on RX - cr &= ~(USART_CR1_TE); // turn off TX - putreg32(cr, STM32_UART5_CR1); -} diff --git a/apps/hott_telemetry/messages.h b/apps/hott_telemetry/messages.h index 562010a06e..fb305cd8d2 100644 --- a/apps/hott_telemetry/messages.h +++ b/apps/hott_telemetry/messages.h @@ -43,10 +43,10 @@ #include -// The HoTT receiver demands a minimum 5ms period of silence after delivering its request. +/* The HoTT receiver demands a minimum 5ms period of silence after delivering its request. */ #define POST_READ_DELAY_IN_USECS 4500 -// A pause of 3ms is required between each uint8_t sent back to the HoTT receiver. Much lower -// values can be used in practise though. +/* A pause of 3ms is required between each uint8_t sent back to the HoTT receiver. Much lower + values can be used in practise though. */ #define POST_WRITE_DELAY_IN_USECS 1500 // Protocol constants. @@ -55,10 +55,11 @@ #define STOP_BYTE 0x7d #define TEMP_ZERO_CELSIUS 0x14 -// Electric Air Module (EAM) constants. +/* Electric Air Module (EAM) constants. */ #define ELECTRIC_AIR_MODULE 0x8e #define EAM_SENSOR_ID 0xe0 +/* The Electric Air Module message. */ struct eam_module_msg { uint8_t start; /**< Start byte */ uint8_t eam_sensor_id; /**< EAM sensor ID */ From bc27a495a0ff4e9e76e38ab606c291d678658e1d Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Thu, 22 Nov 2012 01:54:41 +0100 Subject: [PATCH 06/26] Make the reading and sending of data independant of the message type. This will allow us to cleanly support various sensor types by having a byte array interface for send_data() and read_data(). --- apps/hott_telemetry/hott_telemetry_main.c | 38 ++++++++++++----------- apps/hott_telemetry/messages.c | 29 ++++++++++------- apps/hott_telemetry/messages.h | 4 +-- 3 files changed, 40 insertions(+), 31 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index 00b8f8d665..ba08aa3c5e 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -82,8 +82,8 @@ __EXPORT int hott_telemetry_main(int argc, char *argv[]); */ int hott_telemetry_thread_main(int argc, char *argv[]); -static int read_data(int uart); -static int send_data(int uart, const struct eam_module_msg *msg); +static int read_data(int uart, int *id); +static int send_data(int uart, char *buffer, int size); static void uart_disable_rx(void); static void uart_disable_tx(void); static uint32_t get_uart_address(const char *device); @@ -135,7 +135,7 @@ static int open_uart(const char *uart_name, struct termios *uart_config_original return uart; } -int read_data(int uart) +int read_data(int uart, int *id) { uart_disable_tx(); @@ -148,12 +148,11 @@ int read_data(int uart) read(uart, &mode, 1); /* read the poll ID (device ID being targetted) */ - char id; - read(uart, &id, 1); + read(uart, id, 1); - /* if we have a binary mode request for our sensor ID let's run with it. */ - if (mode != BINARY_MODE_REQUEST_ID || id != ELECTRIC_AIR_MODULE) { - return ERROR; // not really an error, rather uninteresting. + /* if we have a binary mode request */ + if (mode != BINARY_MODE_REQUEST_ID) { + return ERROR; } } else { printf("Timeout\n"); @@ -162,18 +161,13 @@ int read_data(int uart) return OK; } -int send_data(int uart, const struct eam_module_msg *msg) +int send_data(int uart, char *buffer, int size) { usleep(POST_READ_DELAY_IN_USECS); uart_disable_rx(); uint16_t checksum = 0; - int size = sizeof(*msg); - char buffer[size]; - - memcpy(buffer, msg, size); - for(int i = 0; i < size; i++) { if (i == size - 1) { /* Set the checksum: the first uint8_t is taken as the checksum. */ @@ -260,11 +254,19 @@ int hott_telemetry_thread_main(int argc, char *argv[]) messages_init(); - struct eam_module_msg msg; + char *buffer; + int size = 0; + int id = 0; while (!thread_should_exit) { - build_eam_response(&msg); - if (read_data(uart) == OK) { - send_data(uart, &msg); + if (read_data(uart, &id) == OK) { + switch(id) { + case ELECTRIC_AIR_MODULE: + build_eam_response(&buffer, &size); + break; + default: + continue; // Not a module we support. + } + send_data(uart, buffer, size); } } diff --git a/apps/hott_telemetry/messages.c b/apps/hott_telemetry/messages.c index eee78a01e8..1ce103b125 100644 --- a/apps/hott_telemetry/messages.c +++ b/apps/hott_telemetry/messages.c @@ -51,25 +51,32 @@ void messages_init(void) sensor_sub = orb_subscribe(ORB_ID(sensor_combined)); } -void build_eam_response(struct eam_module_msg *msg) +void build_eam_response(char **buffer, int *size) { /* get a local copy of the current sensor values */ struct sensor_combined_s raw; memset(&raw, 0, sizeof(raw)); orb_copy(ORB_ID(sensor_combined), sensor_sub, &raw); - memset(msg, 0, sizeof(*msg)); + struct eam_module_msg msg; + *size = sizeof(msg); + memset(&msg, 0, *size); - msg->start = START_BYTE; - msg->eam_sensor_id = ELECTRIC_AIR_MODULE; - msg->sensor_id = EAM_SENSOR_ID; - msg->temperature1 = (uint8_t)(raw.baro_temp_celcius + 20); - msg->temperature2 = TEMP_ZERO_CELSIUS; - msg->main_voltage_L = (uint8_t)(raw.battery_voltage_v * 10); + msg.start = START_BYTE; + msg.eam_sensor_id = ELECTRIC_AIR_MODULE; + msg.sensor_id = EAM_SENSOR_ID; + msg.temperature1 = (uint8_t)(raw.baro_temp_celcius + 20); + msg.temperature2 = TEMP_ZERO_CELSIUS; + msg.main_voltage_L = (uint8_t)(raw.battery_voltage_v * 10); uint16_t alt = (uint16_t)(raw.baro_alt_meter + 500); - msg->altitude_L = (uint8_t)alt & 0xff; - msg->altitude_H = (uint8_t)(alt >> 8) & 0xff; + msg.altitude_L = (uint8_t)alt & 0xff; + msg.altitude_H = (uint8_t)(alt >> 8) & 0xff; - msg->stop = STOP_BYTE; + msg.stop = STOP_BYTE; + + //*chunk = malloc( sizeof(char) * length); + //char tmp_buffer[*size]; + *buffer = malloc(sizeof(char) * *size); + memcpy(*buffer, &msg, *size); } \ No newline at end of file diff --git a/apps/hott_telemetry/messages.h b/apps/hott_telemetry/messages.h index fb305cd8d2..51217a23b9 100644 --- a/apps/hott_telemetry/messages.h +++ b/apps/hott_telemetry/messages.h @@ -35,7 +35,7 @@ /** * @file messages.h * - * Graupner HoTT Telemetry message generator. + * Graupner HoTT Telemetry message generation. * */ #ifndef MESSAGES_H_ @@ -109,6 +109,6 @@ struct eam_module_msg { }; void messages_init(void); -void build_eam_response(struct eam_module_msg *msg); +void build_eam_response(char **buffer, int *size); #endif /* MESSAGES_H_ */ From ae906dee980c0090135cb6928f9fed04003f5e76 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Thu, 22 Nov 2012 02:03:50 +0100 Subject: [PATCH 07/26] Shorten the post read delay slightly. --- apps/hott_telemetry/messages.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/hott_telemetry/messages.h b/apps/hott_telemetry/messages.h index 51217a23b9..74418fd013 100644 --- a/apps/hott_telemetry/messages.h +++ b/apps/hott_telemetry/messages.h @@ -43,8 +43,11 @@ #include -/* The HoTT receiver demands a minimum 5ms period of silence after delivering its request. */ -#define POST_READ_DELAY_IN_USECS 4500 +/* The HoTT receiver demands a minimum 5ms period of silence after delivering its request. + * Note that the value specified here is lower than 5000 (5ms) as time is lost constucting + * the message after the read which takes some milliseconds. + */ +#define POST_READ_DELAY_IN_USECS 4000 /* A pause of 3ms is required between each uint8_t sent back to the HoTT receiver. Much lower values can be used in practise though. */ #define POST_WRITE_DELAY_IN_USECS 1500 From c296ffb7083678b6760aca9f179067830669af1e Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Thu, 22 Nov 2012 11:46:23 +0100 Subject: [PATCH 08/26] Tried cleaning up console messaging a bit. --- apps/hott_telemetry/hott_telemetry_main.c | 68 ++++++++++++----------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index ba08aa3c5e..25830f20f2 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -46,7 +46,7 @@ * control is currently not provided by Nuttx (yet) so we need to do this * at the hardware level for now. * - * TODO: Add support for at least the vario and GPS sensors. + * TODO: Add support for at least the vario and GPS sensor data. * */ @@ -72,6 +72,13 @@ static int thread_should_exit = false; /**< Deamon exit flag */ static int thread_running = false; /**< Deamon status flag */ static int deamon_task; /**< Handle of deamon task / thread */ static uint32_t uart_addr; /**< The regsitry address of the UART for direct access */ +static char *daemon_name = "hott_telemetry"; +static char *commandline_usage = "usage: hott_telemetry start|status|stop [-d ]"; + +/* A little console messaging experiment - console helper macro */ +#define FATAL_MSG(_msg) fprintf(stderr, "[%s] %s\n", daemon_name, _msg); exit(1); +#define ERROR_MSG(_msg) fprintf(stderr, "[%s] %s\n", daemon_name, _msg); +#define INFO_MSG(_msg) printf("[%s] %s\n", daemon_name, _msg); /** * Deamon management function. */ @@ -98,8 +105,9 @@ static int open_uart(const char *uart_name, struct termios *uart_config_original uart = open(uart_name, O_RDWR | O_NOCTTY); if (uart < 0) { - fprintf(stderr, "[hott_telemetry] ERROR opening port: %s\n", uart_name); - return ERROR; + char msg[80]; + sprintf(msg, "Error opening port: %s\n", uart_name); + FATAL_MSG(msg); } /* Try to set baud rate */ @@ -108,9 +116,10 @@ static int open_uart(const char *uart_name, struct termios *uart_config_original /* Back up the original uart configuration to restore it after exit */ if ((termios_state = tcgetattr(uart, uart_config_original)) < 0) { - fprintf(stderr, "[hott_telemetry] ERROR getting baudrate / termios config for %s: %d\n", uart_name, termios_state); + char msg[80]; + sprintf(msg, "Error getting baudrate / termios config for %s: %d\n", uart_name, termios_state); close(uart); - return ERROR; + FATAL_MSG(msg); } /* Fill the struct for the new configuration */ @@ -121,15 +130,17 @@ static int open_uart(const char *uart_name, struct termios *uart_config_original /* Set baud rate */ if (cfsetispeed(&uart_config, speed) < 0 || cfsetospeed(&uart_config, speed) < 0) { - fprintf(stderr, "[hott_telemetry] ERROR setting baudrate / termios config for %s: %d (cfsetispeed, cfsetospeed)\n", uart_name, termios_state); + char msg[80]; + sprintf(msg, "Error setting baudrate / termios config for %s: %d (cfsetispeed, cfsetospeed)\n", uart_name, termios_state); close(uart); - return ERROR; + FATAL_MSG(msg); } if ((termios_state = tcsetattr(uart, TCSANOW, &uart_config)) < 0) { - fprintf(stderr, "[hott_telemetry] ERROR setting baudrate / termios config for %s (tcsetattr)\n", uart_name); + char msg[80]; + sprintf(msg, "Error setting baudrate / termios config for %s (tcsetattr)\n", uart_name); close(uart); - return ERROR; + FATAL_MSG(msg); } return uart; @@ -155,7 +166,7 @@ int read_data(int uart, int *id) return ERROR; } } else { - printf("Timeout\n"); + ERROR_MSG("UART timeout on TX/RX port"); return ERROR; } return OK; @@ -217,11 +228,10 @@ uint32_t get_uart_address(const char *device) int hott_telemetry_thread_main(int argc, char *argv[]) { - printf("[hott_telemetry] starting\n"); + INFO_MSG("starting"); thread_running = true; - char *commandline_usage = "\tusage: hott_telemetry start|status|stop [-d device]\n"; char *device = "/dev/ttyS2"; /**< Default telemetry port: UART5 */ /* read commandline arguments */ @@ -232,7 +242,9 @@ int hott_telemetry_thread_main(int argc, char *argv[]) } else { thread_running = false; - errx(1, "missing parameter to -m 1..4\n %s", commandline_usage); + ERROR_MSG("missing parameter to -d"); + ERROR_MSG(commandline_usage); + exit(1); } } } @@ -242,7 +254,7 @@ int hott_telemetry_thread_main(int argc, char *argv[]) int uart = open_uart(device, &uart_config_original); if (uart < 0) { - fprintf(stderr, "[hott_telemetry] Failed opening HoTT UART, exiting.\n"); + ERROR_MSG("Failed opening HoTT UART, exiting."); thread_running = false; exit(ERROR); } @@ -270,7 +282,7 @@ int hott_telemetry_thread_main(int argc, char *argv[]) } } - printf("[hott_telemetry] exiting.\n"); + INFO_MSG("exiting"); close(uart); @@ -279,28 +291,21 @@ int hott_telemetry_thread_main(int argc, char *argv[]) return 0; } -static void -usage(const char *reason) -{ - if (reason) - fprintf(stderr, "%s\n", reason); - fprintf(stderr, "usage: deamon {start|stop|status} [-p ]\n\n"); - exit(1); -} - /** * Process command line arguments and tart the daemon. */ int hott_telemetry_main(int argc, char *argv[]) { - if (argc < 1) - usage("missing command"); + if (argc < 1) { + ERROR_MSG("missing command"); + ERROR_MSG(commandline_usage); + exit(1); + } if (!strcmp(argv[1], "start")) { if (thread_running) { - printf("deamon already running\n"); - /* this is not an error */ + INFO_MSG("deamon already running"); exit(0); } @@ -321,14 +326,15 @@ int hott_telemetry_main(int argc, char *argv[]) if (!strcmp(argv[1], "status")) { if (thread_running) { - printf("\thott_telemetry is running\n"); + INFO_MSG("daemon is running"); } else { - printf("\thott_telemetry not started\n"); + INFO_MSG("daemon not started"); } exit(0); } - usage("unrecognized command"); + ERROR_MSG("unrecognized command"); + ERROR_MSG(commandline_usage); exit(1); } From cc7952ea94f30b62be70486f42b47bcffee7f8eb Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Thu, 22 Nov 2012 12:48:52 +0100 Subject: [PATCH 09/26] Messaging cleanup. --- apps/hott_telemetry/hott_telemetry_main.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index 25830f20f2..515779cb5f 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -115,8 +115,8 @@ static int open_uart(const char *uart_name, struct termios *uart_config_original int termios_state; /* Back up the original uart configuration to restore it after exit */ + char msg[80]; if ((termios_state = tcgetattr(uart, uart_config_original)) < 0) { - char msg[80]; sprintf(msg, "Error getting baudrate / termios config for %s: %d\n", uart_name, termios_state); close(uart); FATAL_MSG(msg); @@ -130,14 +130,13 @@ static int open_uart(const char *uart_name, struct termios *uart_config_original /* Set baud rate */ if (cfsetispeed(&uart_config, speed) < 0 || cfsetospeed(&uart_config, speed) < 0) { - char msg[80]; - sprintf(msg, "Error setting baudrate / termios config for %s: %d (cfsetispeed, cfsetospeed)\n", uart_name, termios_state); + sprintf(msg, "Error setting baudrate / termios config for %s: %d (cfsetispeed, cfsetospeed)\n", + uart_name, termios_state); close(uart); FATAL_MSG(msg); } if ((termios_state = tcsetattr(uart, TCSANOW, &uart_config)) < 0) { - char msg[80]; sprintf(msg, "Error setting baudrate / termios config for %s (tcsetattr)\n", uart_name); close(uart); FATAL_MSG(msg); From 14d874f4a15653fce2902f016b1e75373afadd51 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Thu, 22 Nov 2012 16:20:48 +0100 Subject: [PATCH 10/26] Fix some memory corruption bugs. --- apps/hott_telemetry/hott_telemetry_main.c | 8 ++++---- apps/hott_telemetry/messages.c | 7 ++----- apps/hott_telemetry/messages.h | 10 ++++++++-- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index 515779cb5f..98ae30dfca 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -90,7 +90,7 @@ __EXPORT int hott_telemetry_main(int argc, char *argv[]); int hott_telemetry_thread_main(int argc, char *argv[]); static int read_data(int uart, int *id); -static int send_data(int uart, char *buffer, int size); +static int send_data(int uart, uint8_t *buffer, int size); static void uart_disable_rx(void); static void uart_disable_tx(void); static uint32_t get_uart_address(const char *device); @@ -171,7 +171,7 @@ int read_data(int uart, int *id) return OK; } -int send_data(int uart, char *buffer, int size) +int send_data(int uart, uint8_t *buffer, int size) { usleep(POST_READ_DELAY_IN_USECS); @@ -265,14 +265,14 @@ int hott_telemetry_thread_main(int argc, char *argv[]) messages_init(); - char *buffer; + uint8_t buffer[MESSAGE_BUFFER_SIZE]; int size = 0; int id = 0; while (!thread_should_exit) { if (read_data(uart, &id) == OK) { switch(id) { case ELECTRIC_AIR_MODULE: - build_eam_response(&buffer, &size); + build_eam_response(buffer, &size); break; default: continue; // Not a module we support. diff --git a/apps/hott_telemetry/messages.c b/apps/hott_telemetry/messages.c index 1ce103b125..83cc5348c6 100644 --- a/apps/hott_telemetry/messages.c +++ b/apps/hott_telemetry/messages.c @@ -51,7 +51,7 @@ void messages_init(void) sensor_sub = orb_subscribe(ORB_ID(sensor_combined)); } -void build_eam_response(char **buffer, int *size) +void build_eam_response(uint8_t *buffer, int *size) { /* get a local copy of the current sensor values */ struct sensor_combined_s raw; @@ -75,8 +75,5 @@ void build_eam_response(char **buffer, int *size) msg.stop = STOP_BYTE; - //*chunk = malloc( sizeof(char) * length); - //char tmp_buffer[*size]; - *buffer = malloc(sizeof(char) * *size); - memcpy(*buffer, &msg, *size); + memcpy(buffer, &msg, *size); } \ No newline at end of file diff --git a/apps/hott_telemetry/messages.h b/apps/hott_telemetry/messages.h index 74418fd013..2e0699acea 100644 --- a/apps/hott_telemetry/messages.h +++ b/apps/hott_telemetry/messages.h @@ -43,13 +43,19 @@ #include +/* The buffer size used to store messages. This must be at least as big as the number of + * fields in the largest message struct. + */ +#define MESSAGE_BUFFER_SIZE 50 + /* The HoTT receiver demands a minimum 5ms period of silence after delivering its request. * Note that the value specified here is lower than 5000 (5ms) as time is lost constucting * the message after the read which takes some milliseconds. */ #define POST_READ_DELAY_IN_USECS 4000 /* A pause of 3ms is required between each uint8_t sent back to the HoTT receiver. Much lower - values can be used in practise though. */ + * values can be used in practise though. + */ #define POST_WRITE_DELAY_IN_USECS 1500 // Protocol constants. @@ -112,6 +118,6 @@ struct eam_module_msg { }; void messages_init(void); -void build_eam_response(char **buffer, int *size); +void build_eam_response(uint8_t *buffer, int *size); #endif /* MESSAGES_H_ */ From d6e54c3ce43902a96fc33e08581421884fa94de4 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Thu, 29 Nov 2012 02:30:46 +0100 Subject: [PATCH 11/26] Trying to get single wire working. Not quite there yet. --- apps/hott_telemetry/hott_telemetry_main.c | 91 ++++++++--------------- apps/hott_telemetry/messages.h | 2 +- 2 files changed, 34 insertions(+), 59 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index 98ae30dfca..d16f69b88f 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -71,10 +71,10 @@ static int thread_should_exit = false; /**< Deamon exit flag */ static int thread_running = false; /**< Deamon status flag */ static int deamon_task; /**< Handle of deamon task / thread */ -static uint32_t uart_addr; /**< The regsitry address of the UART for direct access */ static char *daemon_name = "hott_telemetry"; static char *commandline_usage = "usage: hott_telemetry start|status|stop [-d ]"; + /* A little console messaging experiment - console helper macro */ #define FATAL_MSG(_msg) fprintf(stderr, "[%s] %s\n", daemon_name, _msg); exit(1); #define ERROR_MSG(_msg) fprintf(stderr, "[%s] %s\n", daemon_name, _msg); @@ -91,22 +91,22 @@ int hott_telemetry_thread_main(int argc, char *argv[]); static int read_data(int uart, int *id); static int send_data(int uart, uint8_t *buffer, int size); -static void uart_disable_rx(void); -static void uart_disable_tx(void); -static uint32_t get_uart_address(const char *device); -static int open_uart(const char *uart_name, struct termios *uart_config_original) +static int open_uart(const char *device, struct termios *uart_config_original) { + /* Change the TX port to be open-drain */ + stm32_configgpio(GPIO_UART5_TX | GPIO_OPENDRAIN); + /* baud rate */ int speed = B19200; int uart; /* open uart */ - uart = open(uart_name, O_RDWR | O_NOCTTY); + uart = open(device, O_RDWR | O_NOCTTY); if (uart < 0) { char msg[80]; - sprintf(msg, "Error opening port: %s\n", uart_name); + sprintf(msg, "Error opening port: %s\n", device); FATAL_MSG(msg); } @@ -117,7 +117,7 @@ static int open_uart(const char *uart_name, struct termios *uart_config_original /* Back up the original uart configuration to restore it after exit */ char msg[80]; if ((termios_state = tcgetattr(uart, uart_config_original)) < 0) { - sprintf(msg, "Error getting baudrate / termios config for %s: %d\n", uart_name, termios_state); + sprintf(msg, "Error getting baudrate / termios config for %s: %d\n", device, termios_state); close(uart); FATAL_MSG(msg); } @@ -131,43 +131,48 @@ static int open_uart(const char *uart_name, struct termios *uart_config_original /* Set baud rate */ if (cfsetispeed(&uart_config, speed) < 0 || cfsetospeed(&uart_config, speed) < 0) { sprintf(msg, "Error setting baudrate / termios config for %s: %d (cfsetispeed, cfsetospeed)\n", - uart_name, termios_state); + device, termios_state); close(uart); FATAL_MSG(msg); } if ((termios_state = tcsetattr(uart, TCSANOW, &uart_config)) < 0) { - sprintf(msg, "Error setting baudrate / termios config for %s (tcsetattr)\n", uart_name); + sprintf(msg, "Error setting baudrate / termios config for %s (tcsetattr)\n", device); close(uart); FATAL_MSG(msg); } + + uint32_t cr; + cr = getreg32(STM32_UART5_CR3); + cr |= (USART_CR3_HDSEL); + //cr &= ~(USART_CR2_LINEN|USART_CR2_CLKEN|USART_CR3_SCEN|USART_CR3_IREN); + putreg32(cr, STM32_UART5_CR3); + return uart; } int read_data(int uart, int *id) { - uart_disable_tx(); - const int timeout = 1000; struct pollfd fds[] = { { .fd = uart, .events = POLLIN } }; - if (poll(fds, 1, timeout) > 0) { + //if (poll(fds, 1, timeout) > 0) { + /* get the mode: binary or text */ char mode; read(uart, &mode, 1); - - /* read the poll ID (device ID being targetted) */ + read(uart, id, 1); /* if we have a binary mode request */ if (mode != BINARY_MODE_REQUEST_ID) { return ERROR; } - } else { - ERROR_MSG("UART timeout on TX/RX port"); - return ERROR; - } + //} else { + // ERROR_MSG("UART timeout on TX/RX port"); + // return ERROR; + //} return OK; } @@ -175,8 +180,6 @@ int send_data(int uart, uint8_t *buffer, int size) { usleep(POST_READ_DELAY_IN_USECS); - uart_disable_rx(); - uint16_t checksum = 0; for(int i = 0; i < size; i++) { if (i == size - 1) { @@ -185,9 +188,12 @@ int send_data(int uart, uint8_t *buffer, int size) } else { checksum += buffer[i]; } - write(uart, &buffer[i], 1); - + + // THIS SHOULDN'T BE NECESSARY! + char dummy; + read(uart, &dummy, 1); + /* Sleep before sending the next byte. */ usleep(POST_WRITE_DELAY_IN_USECS); } @@ -195,36 +201,6 @@ int send_data(int uart, uint8_t *buffer, int size) return OK; } -void uart_disable_rx(void) -{ - uint32_t cr; - cr = getreg32(uart_addr); - cr &= ~(USART_CR1_RE); // turn off RX - cr |= (USART_CR1_TE); // turn on TX - putreg32(cr, uart_addr); -} - -void uart_disable_tx(void) -{ - uint32_t cr; - cr = getreg32(uart_addr); - cr |= (USART_CR1_RE); // turn on RX - cr &= ~(USART_CR1_TE); // turn off TX - putreg32(cr, uart_addr); -} - -uint32_t get_uart_address(const char *device) -{ - /* Map the tty device number to the UART address */ - switch(device[strlen(device) - 1]) { - case '0': return STM32_USART1_CR1; - case '1': return STM32_USART2_CR1; - case '2': return STM32_UART5_CR1; - case '3': return STM32_USART6_CR1; - default: return STM32_UART5_CR1; - } -} - int hott_telemetry_thread_main(int argc, char *argv[]) { INFO_MSG("starting"); @@ -258,11 +234,6 @@ int hott_telemetry_thread_main(int argc, char *argv[]) exit(ERROR); } - /* Since we need to enable/disable both TX and RX on the UART at the device level - * we need to know the register address of the UART we are working with. Making it - * global so it's easy to remove later when TX/RX control is provided by Nuttx. */ - uart_addr = get_uart_address(device); - messages_init(); uint8_t buffer[MESSAGE_BUFFER_SIZE]; @@ -277,7 +248,11 @@ int hott_telemetry_thread_main(int argc, char *argv[]) default: continue; // Not a module we support. } + //printf("Write start\n"); send_data(uart, buffer, size); + //printf("Write end\n"); + } else { + printf("NOK: %x\n", id); } } diff --git a/apps/hott_telemetry/messages.h b/apps/hott_telemetry/messages.h index 2e0699acea..fbb9a2d844 100644 --- a/apps/hott_telemetry/messages.h +++ b/apps/hott_telemetry/messages.h @@ -56,7 +56,7 @@ /* A pause of 3ms is required between each uint8_t sent back to the HoTT receiver. Much lower * values can be used in practise though. */ -#define POST_WRITE_DELAY_IN_USECS 1500 +#define POST_WRITE_DELAY_IN_USECS 2000 // Protocol constants. #define BINARY_MODE_REQUEST_ID 0x80 // Binary mode request. From d82c62e95bd8d37ec2a8060f096ad4188f34bc49 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Thu, 29 Nov 2012 16:42:13 +0100 Subject: [PATCH 12/26] Single wire now working once moving away from UART5. --- apps/hott_telemetry/hott_telemetry_main.c | 65 ++++++++++++++--------- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index d16f69b88f..455d25f889 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -40,12 +40,6 @@ * The HoTT receiver polls each device at a regular interval at which point * a data packet can be returned if necessary. * - * NOTE: Since HoTT telemetry works half-duplex over a single wire the wire - * is connected to both the UART TX and RX port. In order to send and receive - * we need to be able to disable one of these ports at a time. This level of - * control is currently not provided by Nuttx (yet) so we need to do this - * at the hardware level for now. - * * TODO: Add support for at least the vario and GPS sensor data. * */ @@ -94,9 +88,6 @@ static int send_data(int uart, uint8_t *buffer, int size); static int open_uart(const char *device, struct termios *uart_config_original) { - /* Change the TX port to be open-drain */ - stm32_configgpio(GPIO_UART5_TX | GPIO_OPENDRAIN); - /* baud rate */ int speed = B19200; int uart; @@ -142,12 +133,37 @@ static int open_uart(const char *device, struct termios *uart_config_original) FATAL_MSG(msg); } - + /* Get the appropriate GPIO pin and control register */ + uint32_t gpio_uart; + uint32_t uart_cr3; + switch(device[strlen(device) - 1]) { + case '0': + gpio_uart = GPIO_USART1_TX; + uart_cr3 = STM32_USART1_CR3; + break; + case '1': + gpio_uart = GPIO_USART2_TX; + uart_cr3 = STM32_USART2_CR3; + break; + case '2': + sprintf(msg, "/dev/ttyS3 is not supported.\n", device); + close(uart); + FATAL_MSG(msg); + break; + case '3': + gpio_uart = GPIO_USART6_TX; + uart_cr3 = STM32_USART6_CR3; + break; + } + + /* Change the TX port to be open-drain */ + stm32_configgpio(gpio_uart | GPIO_OPENDRAIN); + + /* Turn on half-duplex mode */ uint32_t cr; - cr = getreg32(STM32_UART5_CR3); + cr = getreg32(uart_cr3); cr |= (USART_CR3_HDSEL); - //cr &= ~(USART_CR2_LINEN|USART_CR2_CLKEN|USART_CR3_SCEN|USART_CR3_IREN); - putreg32(cr, STM32_UART5_CR3); + putreg32(cr, uart_cr3); return uart; } @@ -157,7 +173,7 @@ int read_data(int uart, int *id) const int timeout = 1000; struct pollfd fds[] = { { .fd = uart, .events = POLLIN } }; - //if (poll(fds, 1, timeout) > 0) { + if (poll(fds, 1, timeout) > 0) { /* get the mode: binary or text */ char mode; @@ -165,14 +181,15 @@ int read_data(int uart, int *id) read(uart, id, 1); + //printf("[%x %x]\n", mode, *id); /* if we have a binary mode request */ if (mode != BINARY_MODE_REQUEST_ID) { return ERROR; } - //} else { - // ERROR_MSG("UART timeout on TX/RX port"); - // return ERROR; - //} + } else { + ERROR_MSG("UART timeout on TX/RX port"); + return ERROR; + } return OK; } @@ -190,14 +207,15 @@ int send_data(int uart, uint8_t *buffer, int size) } write(uart, &buffer[i], 1); - // THIS SHOULDN'T BE NECESSARY! - char dummy; - read(uart, &dummy, 1); - /* Sleep before sending the next byte. */ usleep(POST_WRITE_DELAY_IN_USECS); } + /* A hack the reads out what was written so the next read from the receiver doesn't get it. */ + /* TODO: Fix this!! */ + uint8_t dummy[size]; + read(uart, &dummy, size); + return OK; } @@ -207,7 +225,7 @@ int hott_telemetry_thread_main(int argc, char *argv[]) thread_running = true; - char *device = "/dev/ttyS2"; /**< Default telemetry port: UART5 */ + char *device = "/dev/ttyS1"; /**< Default telemetry port: USART2 */ /* read commandline arguments */ for (int i = 0; i < argc && argv[i]; i++) { @@ -250,7 +268,6 @@ int hott_telemetry_thread_main(int argc, char *argv[]) } //printf("Write start\n"); send_data(uart, buffer, size); - //printf("Write end\n"); } else { printf("NOK: %x\n", id); } From 2eccf5ff196d3c46f95cd4a5246e37d89555f5b4 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Thu, 29 Nov 2012 16:48:52 +0100 Subject: [PATCH 13/26] Cleanup a bit. --- apps/hott_telemetry/hott_telemetry_main.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index 455d25f889..ec2ca2b411 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -173,15 +173,13 @@ int read_data(int uart, int *id) const int timeout = 1000; struct pollfd fds[] = { { .fd = uart, .events = POLLIN } }; + char mode; if (poll(fds, 1, timeout) > 0) { - - /* get the mode: binary or text */ - char mode; + /* Get the mode: binary or text */ read(uart, &mode, 1); - + /* Read the device ID being polled */ read(uart, id, 1); - //printf("[%x %x]\n", mode, *id); /* if we have a binary mode request */ if (mode != BINARY_MODE_REQUEST_ID) { return ERROR; @@ -266,10 +264,7 @@ int hott_telemetry_thread_main(int argc, char *argv[]) default: continue; // Not a module we support. } - //printf("Write start\n"); send_data(uart, buffer, size); - } else { - printf("NOK: %x\n", id); } } From c149b26dd44ebdd84ee3fd72cda3caea893191b2 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Fri, 30 Nov 2012 08:06:19 +0100 Subject: [PATCH 14/26] Code formatting cleanup. Fixed code style with Tools/fix_code_style.sh --- apps/hott_telemetry/hott_telemetry_main.c | 76 ++++++++++++++--------- apps/hott_telemetry/messages.c | 8 +-- apps/hott_telemetry/messages.h | 16 ++--- 3 files changed, 58 insertions(+), 42 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index ec2ca2b411..1eccf50a18 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -40,7 +40,7 @@ * The HoTT receiver polls each device at a regular interval at which point * a data packet can be returned if necessary. * - * TODO: Add support for at least the vario and GPS sensor data. + * TODO: Add support for at least the vario and GPS sensor data. * */ @@ -107,6 +107,7 @@ static int open_uart(const char *device, struct termios *uart_config_original) /* Back up the original uart configuration to restore it after exit */ char msg[80]; + if ((termios_state = tcgetattr(uart, uart_config_original)) < 0) { sprintf(msg, "Error getting baudrate / termios config for %s: %d\n", device, termios_state); close(uart); @@ -121,7 +122,7 @@ static int open_uart(const char *device, struct termios *uart_config_original) /* Set baud rate */ if (cfsetispeed(&uart_config, speed) < 0 || cfsetospeed(&uart_config, speed) < 0) { - sprintf(msg, "Error setting baudrate / termios config for %s: %d (cfsetispeed, cfsetospeed)\n", + sprintf(msg, "Error setting baudrate / termios config for %s: %d (cfsetispeed, cfsetospeed)\n", device, termios_state); close(uart); FATAL_MSG(msg); @@ -136,24 +137,28 @@ static int open_uart(const char *device, struct termios *uart_config_original) /* Get the appropriate GPIO pin and control register */ uint32_t gpio_uart; uint32_t uart_cr3; - switch(device[strlen(device) - 1]) { - case '0': - gpio_uart = GPIO_USART1_TX; - uart_cr3 = STM32_USART1_CR3; - break; - case '1': - gpio_uart = GPIO_USART2_TX; - uart_cr3 = STM32_USART2_CR3; - break; - case '2': - sprintf(msg, "/dev/ttyS3 is not supported.\n", device); - close(uart); - FATAL_MSG(msg); - break; - case '3': - gpio_uart = GPIO_USART6_TX; - uart_cr3 = STM32_USART6_CR3; - break; + + switch (device[strlen(device) - 1]) { + case '0': + gpio_uart = GPIO_USART1_TX; + uart_cr3 = STM32_USART1_CR3; + break; + + case '1': + gpio_uart = GPIO_USART2_TX; + uart_cr3 = STM32_USART2_CR3; + break; + + case '2': + sprintf(msg, "/dev/ttyS3 is not supported.\n", device); + close(uart); + FATAL_MSG(msg); + break; + + case '3': + gpio_uart = GPIO_USART6_TX; + uart_cr3 = STM32_USART6_CR3; + break; } /* Change the TX port to be open-drain */ @@ -164,7 +169,7 @@ static int open_uart(const char *device, struct termios *uart_config_original) cr = getreg32(uart_cr3); cr |= (USART_CR3_HDSEL); putreg32(cr, uart_cr3); - + return uart; } @@ -174,6 +179,7 @@ int read_data(int uart, int *id) struct pollfd fds[] = { { .fd = uart, .events = POLLIN } }; char mode; + if (poll(fds, 1, timeout) > 0) { /* Get the mode: binary or text */ read(uart, &mode, 1); @@ -184,10 +190,12 @@ int read_data(int uart, int *id) if (mode != BINARY_MODE_REQUEST_ID) { return ERROR; } + } else { ERROR_MSG("UART timeout on TX/RX port"); return ERROR; } + return OK; } @@ -196,13 +204,16 @@ int send_data(int uart, uint8_t *buffer, int size) usleep(POST_READ_DELAY_IN_USECS); uint16_t checksum = 0; - for(int i = 0; i < size; i++) { + + for (int i = 0; i < size; i++) { if (i == size - 1) { /* Set the checksum: the first uint8_t is taken as the checksum. */ buffer[i] = checksum & 0xff; + } else { checksum += buffer[i]; } + write(uart, &buffer[i], 1); /* Sleep before sending the next byte. */ @@ -213,11 +224,11 @@ int send_data(int uart, uint8_t *buffer, int size) /* TODO: Fix this!! */ uint8_t dummy[size]; read(uart, &dummy, size); - + return OK; } -int hott_telemetry_thread_main(int argc, char *argv[]) +int hott_telemetry_thread_main(int argc, char *argv[]) { INFO_MSG("starting"); @@ -255,15 +266,18 @@ int hott_telemetry_thread_main(int argc, char *argv[]) uint8_t buffer[MESSAGE_BUFFER_SIZE]; int size = 0; int id = 0; + while (!thread_should_exit) { if (read_data(uart, &id) == OK) { - switch(id) { - case ELECTRIC_AIR_MODULE: - build_eam_response(buffer, &size); - break; - default: - continue; // Not a module we support. + switch (id) { + case ELECTRIC_AIR_MODULE: + build_eam_response(buffer, &size); + break; + + default: + continue; // Not a module we support. } + send_data(uart, buffer, size); } } @@ -313,9 +327,11 @@ int hott_telemetry_main(int argc, char *argv[]) if (!strcmp(argv[1], "status")) { if (thread_running) { INFO_MSG("daemon is running"); + } else { INFO_MSG("daemon not started"); } + exit(0); } diff --git a/apps/hott_telemetry/messages.c b/apps/hott_telemetry/messages.c index 83cc5348c6..dce16f3710 100644 --- a/apps/hott_telemetry/messages.c +++ b/apps/hott_telemetry/messages.c @@ -36,7 +36,7 @@ * @file messages.c * */ - + #include "messages.h" #include @@ -57,10 +57,10 @@ void build_eam_response(uint8_t *buffer, int *size) struct sensor_combined_s raw; memset(&raw, 0, sizeof(raw)); orb_copy(ORB_ID(sensor_combined), sensor_sub, &raw); - + struct eam_module_msg msg; *size = sizeof(msg); - memset(&msg, 0, *size); + memset(&msg, 0, *size); msg.start = START_BYTE; msg.eam_sensor_id = ELECTRIC_AIR_MODULE; @@ -72,7 +72,7 @@ void build_eam_response(uint8_t *buffer, int *size) uint16_t alt = (uint16_t)(raw.baro_alt_meter + 500); msg.altitude_L = (uint8_t)alt & 0xff; msg.altitude_H = (uint8_t)(alt >> 8) & 0xff; - + msg.stop = STOP_BYTE; memcpy(buffer, &msg, *size); diff --git a/apps/hott_telemetry/messages.h b/apps/hott_telemetry/messages.h index fbb9a2d844..44001e04f0 100644 --- a/apps/hott_telemetry/messages.h +++ b/apps/hott_telemetry/messages.h @@ -44,17 +44,17 @@ #include /* The buffer size used to store messages. This must be at least as big as the number of - * fields in the largest message struct. + * fields in the largest message struct. */ #define MESSAGE_BUFFER_SIZE 50 -/* The HoTT receiver demands a minimum 5ms period of silence after delivering its request. +/* The HoTT receiver demands a minimum 5ms period of silence after delivering its request. * Note that the value specified here is lower than 5000 (5ms) as time is lost constucting - * the message after the read which takes some milliseconds. + * the message after the read which takes some milliseconds. */ -#define POST_READ_DELAY_IN_USECS 4000 +#define POST_READ_DELAY_IN_USECS 4000 /* A pause of 3ms is required between each uint8_t sent back to the HoTT receiver. Much lower - * values can be used in practise though. + * values can be used in practise though. */ #define POST_WRITE_DELAY_IN_USECS 2000 @@ -74,10 +74,10 @@ struct eam_module_msg { uint8_t eam_sensor_id; /**< EAM sensor ID */ uint8_t warning; uint8_t sensor_id; /**< Sensor ID, why different? */ - uint8_t alarm_inverse1; - uint8_t alarm_inverse2; + uint8_t alarm_inverse1; + uint8_t alarm_inverse2; uint8_t cell1_L; /**< Lipo cell voltages. Not supported. */ - uint8_t cell2_L; + uint8_t cell2_L; uint8_t cell3_L; uint8_t cell4_L; uint8_t cell5_L; From 9924c4f425bc9fc507e7d065cc373a6cd9bbfebd Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Fri, 30 Nov 2012 08:12:20 +0100 Subject: [PATCH 15/26] Addressed compiler warnings and handle non-supported devices properly. --- apps/hott_telemetry/hott_telemetry_main.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index 1eccf50a18..ae6c69b99d 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -135,8 +135,8 @@ static int open_uart(const char *device, struct termios *uart_config_original) } /* Get the appropriate GPIO pin and control register */ - uint32_t gpio_uart; - uint32_t uart_cr3; + uint32_t gpio_uart = GPIO_USART2_TX;; + uint32_t uart_cr3 = STM32_USART2_CR3; switch (device[strlen(device) - 1]) { case '0': @@ -149,16 +149,16 @@ static int open_uart(const char *device, struct termios *uart_config_original) uart_cr3 = STM32_USART2_CR3; break; - case '2': - sprintf(msg, "/dev/ttyS3 is not supported.\n", device); - close(uart); - FATAL_MSG(msg); - break; - case '3': gpio_uart = GPIO_USART6_TX; uart_cr3 = STM32_USART6_CR3; break; + + default: + sprintf(msg, "%s is not supported.\n", device); + close(uart); + FATAL_MSG(msg); + break; } /* Change the TX port to be open-drain */ From 097aeddcadc6c0b5decf8374c05586bfff5e403d Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Thu, 6 Dec 2012 17:24:27 +0100 Subject: [PATCH 16/26] Push single wire operations into stm32_serial.c and added a test to verify HoTT telemetry setup. --- apps/px4/tests/test_hott_telemetry.c | 239 ++++++++++++++++++++++++ apps/px4/tests/tests.h | 1 + apps/px4/tests/tests_main.c | 1 + nuttx/arch/arm/src/stm32/stm32_serial.c | 21 +++ nuttx/drivers/serial/serial.c | 1 + 5 files changed, 263 insertions(+) create mode 100644 apps/px4/tests/test_hott_telemetry.c diff --git a/apps/px4/tests/test_hott_telemetry.c b/apps/px4/tests/test_hott_telemetry.c new file mode 100644 index 0000000000..dbef021e32 --- /dev/null +++ b/apps/px4/tests/test_hott_telemetry.c @@ -0,0 +1,239 @@ +/**************************************************************************** + * + * Copyright (C) 2012 PX4 Development Team. All rights reserved. + * Author: @author Simon Wilks + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name PX4 nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/** + * @file test_hott_telemetry.c + * + * Tests the Graupner HoTT telemetry support. + * + */ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "tests.h" + + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +/**************************************************************************** + * Private Functions + ****************************************************************************/ +static int open_uart(const char *device) +{ + /* baud rate */ + int speed = B19200; + + /* open uart */ + int uart = open(device, O_RDWR | O_NOCTTY); + + if (uart < 0) { + errx(1, "FAIL: Error opening port"); + return ERROR; + } + + /* Try to set baud rate */ + struct termios uart_config; + + /* Fill the struct for the new configuration */ + tcgetattr(uart, &uart_config); + + /* Clear ONLCR flag (which appends a CR for every LF) */ + uart_config.c_oflag &= ~ONLCR; + + /* Set baud rate */ + if (cfsetispeed(&uart_config, speed) < 0 || cfsetospeed(&uart_config, speed) < 0) { + errx(1, "FAIL: Error setting baudrate / termios config for cfsetispeed, cfsetospeed"); + return ERROR; + } + + if (tcsetattr(uart, TCSANOW, &uart_config) < 0) { + errx(1, "FAIL: Error setting baudrate / termios config for tcsetattr"); + return ERROR; + } + + return uart; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: test_hott_telemetry + ****************************************************************************/ + +int test_hott_telemetry(int argc, char *argv[]) +{ + warnx("HoTT Telemetry Test Requirements:"); + warnx("- Radio on and Electric Air. Mod on (telemetry -> sensor select)."); + warnx("- Receiver telemetry port must be in telemetry mode."); + warnx("- Connect telemetry wire to /dev/ttyS1 (USART2)."); + warnx("Testing..."); + + const char device[] = "/dev/ttyS1"; + int fd = open_uart(device); + + if (fd < 0) { + close(fd); + return ERROR; + } + + /* Activate single wire mode */ + ioctl(fd, TIOCSRS485, SER_RS485_ENABLED); + + char send = 'a'; + write(fd, &send, 1); + + /* Since TX and RX are now connected we should be able to read in what we wrote */ + const int timeout = 1000; + struct pollfd fds[] = { { .fd = fd, .events = POLLIN } }; + + if (poll(fds, 1, timeout) == 0) { + errx(1, "FAIL: Could not read sent data."); + } + + char receive; + read(fd, &receive, 1); + warnx("PASS: Single wire enabled. Sent %x and received %x", send, receive); + + + /* Attempt to read HoTT poll messages from the HoTT receiver */ + int received_count = 0; + int valid_count = 0; + const int max_polls = 5; + uint8_t byte; + + for (; received_count < 5; received_count++) { + if (poll(fds, 1, timeout) == 0) { + errx(1, "FAIL: Could not read sent data. Is your HoTT receiver plugged in on %s?", device); + break; + + } else { + read(fd, &byte, 1); + + if (byte == 0x80) { + valid_count++; + } + + /* Read the device ID being polled */ + read(fd, &byte, 1); + } + } + + if (received_count > 0 && valid_count > 0) { + if (received_count == max_polls && valid_count == max_polls) { + warnx("PASS: Received %d out of %d valid byte pairs from the HoTT receiver device.", received_count, max_polls); + + } else { + warnx("WARN: Received %d out of %d byte pairs of which %d were valid from the HoTT receiver device.", received_count, max_polls, valid_count); + } + + } else { + /* Let's work out what went wrong */ + if (received_count == 0) { + errx(1, "FAIL: Could not read any polls from HoTT receiver device."); + } + + if (valid_count == 0) { + errx(1, "FAIL: Received unexpected values from the HoTT receiver device."); + } + } + + + /* Attempt to send a HoTT response messages */ + uint8_t response[] = {0x7c, 0x8e, 0x00, 0xe0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, \ + 0x19, 0x00, 0x00, 0x00, 0x30, 0x75, 0x78, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x7d, 0x12 + }; + + usleep(5000); + + for (unsigned int i = 0; i < sizeof(response); i++) { + write(fd, &response[i], 1); + usleep(1000); + } + + warnx("PASS: Response sent to the HoTT receiver device. Voltage should now show 2.5V."); + + + /* Disable single wire */ + ioctl(fd, TIOCSRS485, ~SER_RS485_ENABLED); + + write(fd, &send, 1); + + /* We should timeout as there will be nothing to read (TX and RX no longer connected) */ + if (poll(fds, 1, timeout) == 0) { + errx(1, "FAIL: timeout expected."); + } + + warnx("PASS: Single wire disabled."); + + close(fd); + exit(0); +} diff --git a/apps/px4/tests/tests.h b/apps/px4/tests/tests.h index 46450d10bf..cc3f5493a8 100644 --- a/apps/px4/tests/tests.h +++ b/apps/px4/tests/tests.h @@ -93,6 +93,7 @@ extern int test_uart_send(int argc, char *argv[]); extern int test_sleep(int argc, char *argv[]); extern int test_time(int argc, char *argv[]); extern int test_uart_console(int argc, char *argv[]); +extern int test_hott_telemetry(int argc, char *argv[]); extern int test_jig_voltages(int argc, char *argv[]); extern int test_param(int argc, char *argv[]); extern int test_bson(int argc, char *argv[]); diff --git a/apps/px4/tests/tests_main.c b/apps/px4/tests/tests_main.c index 26f7ef96bf..906d25f9e7 100644 --- a/apps/px4/tests/tests_main.c +++ b/apps/px4/tests/tests_main.c @@ -101,6 +101,7 @@ struct { {"uart_baudchange", test_uart_baudchange, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, {"uart_send", test_uart_send, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, {"uart_console", test_uart_console, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, + {"hott_telemetry", test_hott_telemetry, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, {"tone", test_tone, 0, 0}, {"sleep", test_sleep, OPT_NOJIGTEST, 0}, {"time", test_time, OPT_NOJIGTEST, 0}, diff --git a/nuttx/arch/arm/src/stm32/stm32_serial.c b/nuttx/arch/arm/src/stm32/stm32_serial.c index 0868c3cd3d..80c4ce357c 100644 --- a/nuttx/arch/arm/src/stm32/stm32_serial.c +++ b/nuttx/arch/arm/src/stm32/stm32_serial.c @@ -1307,6 +1307,27 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) } break; + /* Set RS485 mode */ + case TIOCSRS485: + { + /* Change the TX port to be open-drain/push-pull */ + if (arg == SER_RS485_ENABLED) { + stm32_configgpio(priv->tx_gpio | GPIO_OPENDRAIN); + } else { + stm32_configgpio(priv->tx_gpio | GPIO_PUSHPULL); + } + + /* Enable/disable half-duplex mode */ + uint32_t cr = up_serialin(priv, STM32_USART_CR3_OFFSET); + if (arg == SER_RS485_ENABLED) { + cr |= (USART_CR3_HDSEL); + } else { + cr &= ~(USART_CR3_HDSEL); + } + up_serialout(priv, STM32_USART_CR3_OFFSET, cr); + } + break; + #ifdef CONFIG_SERIAL_TERMIOS case TCGETS: { diff --git a/nuttx/drivers/serial/serial.c b/nuttx/drivers/serial/serial.c index c650da5db3..c31d12eee1 100644 --- a/nuttx/drivers/serial/serial.c +++ b/nuttx/drivers/serial/serial.c @@ -687,6 +687,7 @@ static int uart_ioctl(FAR struct file *filep, int cmd, unsigned long arg) *(int *)arg = count; } + break; #ifdef CONFIG_SERIAL_TERMIOS case TCGETS: From 5ba54cd9215abff95e01c113c973b10ef65487d8 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Mon, 31 Dec 2012 02:22:57 +0100 Subject: [PATCH 17/26] Added rc mode docs --- .gitignore | 1 + Documentation/rc_mode_switch.odg | Bin 0 -> 12047 bytes Documentation/rc_mode_switch.pdf | Bin 0 -> 11570 bytes 3 files changed, 1 insertion(+) create mode 100644 Documentation/rc_mode_switch.odg create mode 100644 Documentation/rc_mode_switch.pdf diff --git a/.gitignore b/.gitignore index ea416fae48..d3eb71b6c1 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ nsh_romfsimg.h cscope.out .configX-e nuttx-export.zip +.~lock.* diff --git a/Documentation/rc_mode_switch.odg b/Documentation/rc_mode_switch.odg new file mode 100644 index 0000000000000000000000000000000000000000..77194369b485bacb8f0382391a0bab81bae322b1 GIT binary patch literal 12047 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 N0vy1?BBLS;_ Date: Sun, 20 Jan 2013 19:47:21 +0100 Subject: [PATCH 18/26] Major push in state machine cleanup --- Documentation/arming_state_machine.odg | Bin 0 -> 12021 bytes Documentation/arming_state_machine.pdf | Bin 0 -> 9039 bytes Documentation/flight_mode_state_machine.odg | Bin 0 -> 18165 bytes Documentation/flight_mode_state_machine.pdf | Bin 0 -> 22823 bytes Documentation/rc_mode_switch.odg | Bin 12047 -> 12135 bytes Documentation/rc_mode_switch.pdf | Bin 11570 -> 14054 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Documentation/arming_state_machine.odg create mode 100644 Documentation/arming_state_machine.pdf create mode 100644 Documentation/flight_mode_state_machine.odg create mode 100644 Documentation/flight_mode_state_machine.pdf diff --git a/Documentation/arming_state_machine.odg b/Documentation/arming_state_machine.odg new file mode 100644 index 0000000000000000000000000000000000000000..cfadbab7c9f4441c29ba53ea883df26c3a482f1b GIT binary patch literal 12021 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 V6;N;8u;E?*30(J}=d<2?`yc1sc2NKT literal 0 HcmV?d00001 diff --git a/Documentation/arming_state_machine.pdf b/Documentation/arming_state_machine.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2c3e8be23491a8d5143357623f31652567ed91dd GIT binary patch literal 9039 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 DZ7x;p literal 0 HcmV?d00001 diff --git a/Documentation/flight_mode_state_machine.pdf b/Documentation/flight_mode_state_machine.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3182af5df75adbbc0791525ead60590fe2dd5e05 GIT binary patch literal 22823 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 literal 0 HcmV?d00001 diff --git a/Documentation/rc_mode_switch.odg b/Documentation/rc_mode_switch.odg index 77194369b485bacb8f0382391a0bab81bae322b1..6105b7cb2a6f05025cf0931620192fcca435fec7 100644 GIT binary patch delta 7423 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 delta 7304 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 YF(CB6`7l8kFdUE)5H6fHo?n>%0n2KQJ^%m! diff --git a/Documentation/rc_mode_switch.pdf b/Documentation/rc_mode_switch.pdf index bcdc42249059e27d5de00341a007281ddb765399..5eeab7fbc8e03cd9b9f0150455f0eb29c3e633f5 100644 GIT binary patch delta 12888 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¨N!zZ|AzPTyuUdD&0<`t;j|3!v}TzNHYVZ^eS@Z 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 GjQ Date: Mon, 21 Jan 2013 23:31:12 +0100 Subject: [PATCH 19/26] We aren't using RS485 but single wire. --- apps/px4/tests/test_hott_telemetry.c | 4 ++-- nuttx/arch/arm/src/stm32/stm32_serial.c | 8 ++++---- nuttx/include/nuttx/serial/tioctl.h | 6 ++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/px4/tests/test_hott_telemetry.c b/apps/px4/tests/test_hott_telemetry.c index dbef021e32..74aa0e614f 100644 --- a/apps/px4/tests/test_hott_telemetry.c +++ b/apps/px4/tests/test_hott_telemetry.c @@ -143,7 +143,7 @@ int test_hott_telemetry(int argc, char *argv[]) } /* Activate single wire mode */ - ioctl(fd, TIOCSRS485, SER_RS485_ENABLED); + ioctl(fd, TIOCSSINGLEWIRE, SER_SINGLEWIRE_ENABLED); char send = 'a'; write(fd, &send, 1); @@ -223,7 +223,7 @@ int test_hott_telemetry(int argc, char *argv[]) /* Disable single wire */ - ioctl(fd, TIOCSRS485, ~SER_RS485_ENABLED); + ioctl(fd, TIOCSSINGLEWIRE, ~SER_SINGLEWIRE_ENABLED); write(fd, &send, 1); diff --git a/nuttx/arch/arm/src/stm32/stm32_serial.c b/nuttx/arch/arm/src/stm32/stm32_serial.c index 80c4ce357c..7e8537b2a3 100644 --- a/nuttx/arch/arm/src/stm32/stm32_serial.c +++ b/nuttx/arch/arm/src/stm32/stm32_serial.c @@ -1307,11 +1307,11 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) } break; - /* Set RS485 mode */ - case TIOCSRS485: + /* Set single-wire mode */ + case TIOCSSINGLEWIRE: { /* Change the TX port to be open-drain/push-pull */ - if (arg == SER_RS485_ENABLED) { + if (arg == SER_SINGLEWIRE_ENABLED) { stm32_configgpio(priv->tx_gpio | GPIO_OPENDRAIN); } else { stm32_configgpio(priv->tx_gpio | GPIO_PUSHPULL); @@ -1319,7 +1319,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) /* Enable/disable half-duplex mode */ uint32_t cr = up_serialin(priv, STM32_USART_CR3_OFFSET); - if (arg == SER_RS485_ENABLED) { + if (arg == SER_SINGLEWIRE_ENABLED) { cr |= (USART_CR3_HDSEL); } else { cr &= ~(USART_CR3_HDSEL); diff --git a/nuttx/include/nuttx/serial/tioctl.h b/nuttx/include/nuttx/serial/tioctl.h index b309ff37ce..76185a22ed 100644 --- a/nuttx/include/nuttx/serial/tioctl.h +++ b/nuttx/include/nuttx/serial/tioctl.h @@ -169,6 +169,9 @@ #define TIOCSERGSTRUCT _TIOC(0x002c) /* Get device TTY structure */ +#define TIOCSSINGLEWIRE _TIOC(0x002d) /* Set single-wire mode */ +#define TIOCGSINGLEWIRE _TIOC(0x002e) /* Get single-wire mode */ + /* Definitions used in struct serial_rs485 (Linux compatible) */ #define SER_RS485_ENABLED (1 << 0) /* Enable/disble RS-485 support */ @@ -176,6 +179,9 @@ #define SER_RS485_RTS_AFTER_SEND (1 << 2) /* Logic level for RTS pin after sent */ #define SER_RS485_RX_DURING_TX (1 << 4) +/* single-wire definitions */ +#define SER_SINGLEWIRE_ENABLED (1 << 0) /* Enable/disble single-wire support */ + /******************************************************************************************** * Public Type Definitions ********************************************************************************************/ From c72ea8356ad337fa5dafaca295beccd159a2eb4c Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Mon, 21 Jan 2013 23:44:15 +0100 Subject: [PATCH 20/26] Updated docs --- Documentation/flight_mode_state_machine.odg | Bin 18165 -> 18105 bytes Documentation/flight_mode_state_machine.pdf | Bin 22823 -> 23031 bytes Documentation/rc_mode_switch.odg | Bin 12135 -> 12433 bytes Documentation/rc_mode_switch.pdf | Bin 14054 -> 14967 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/flight_mode_state_machine.odg b/Documentation/flight_mode_state_machine.odg index 99ef3a12e4669ca88d3f030523f740792eb23e1d..b630ecb40242a9a52a796c30ff0dbc283a4de7e7 100644 GIT binary patch delta 13201 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 bur~iS%YRj(J4h1&H6W4FbZ{mAGU0y#X%Ijh diff --git a/Documentation/flight_mode_state_machine.pdf b/Documentation/flight_mode_state_machine.pdf index 3182af5df75adbbc0791525ead60590fe2dd5e05..cd234ada73ce021351db8fdc8952dc20aad29ca8 100644 GIT binary patch delta 12361 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 delta 12198 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 diff --git a/Documentation/rc_mode_switch.odg b/Documentation/rc_mode_switch.odg index 6105b7cb2a6f05025cf0931620192fcca435fec7..5d7d6e07e6f914f88e36ef208149965672d44907 100644 GIT binary patch delta 9734 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 MU}r!iW&S<-UmIlPDF6Tf diff --git a/Documentation/rc_mode_switch.pdf b/Documentation/rc_mode_switch.pdf index 5eeab7fbc8e03cd9b9f0150455f0eb29c3e633f5..bbddbc4cf02eb3dc32983477d887b98176c4a634 100644 GIT binary patch delta 13289 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 aOkLc*V7pjap#eZ(2p1YXy_B*v+W!IbuWlaz From 7459169230c4fbb738aaa79f61592048e537cf02 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Tue, 22 Jan 2013 13:11:19 -0800 Subject: [PATCH 21/26] RC mode switching idea using 1 3pos and 2 2pos switches --- Documentation/rc_mode_switch.odg | Bin 12433 -> 18566 bytes Documentation/rc_mode_switch.pdf | Bin 14967 -> 18022 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/rc_mode_switch.odg b/Documentation/rc_mode_switch.odg index 5d7d6e07e6f914f88e36ef208149965672d44907..0e47789a828e347ad258b0f2af662dee8d321044 100644 GIT binary patch delta 16036 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

)Z<@iXgXdb zssNZ+JG;ya>ZM@^L<$%!bPW|tKa1MvWb?XyRq0AMH(b|vDI29}f%sA)iI}Px!5$Nd z%*WQ3Ox8l7FJr25(FObLW?)A(xYh~}nk0a=_DJ`c5o0C?*WzuNbeXk)mcdr%e zRe)da&*mqLo$g*!8RdyNzBxS|YD}pzX6oz^0X=6vb$1Yk+bwhsg=^di>&WydiwCB& zqx(U~e3uyBdViP?g^UeL$-6N_3(8s(vPw|Isa=$LQRchs1ERkJWhRWg*9bynGs*%| z8N(F=Qj{=M9z8S6QO$b*_>7`D?89y z(@12Qnj~inh9!Ez(g$x8_DLUvq^VDmk~WygfiL}9tuT~OdB)T~aciv)wg%TZEa)$P zAjQxB$?n-u!EAU9>XzlTT6~{aGBI=&!<6Vn?G;|Ltcco zR_V)gESX;>YZ2_4B9c0kyn{`n})$*_K+6bH{D3 zgm{DaYpRKS+oECfs}-$N9x5yDQPKA2RYo38R9W_y?-|4BUZ4iR^>=0N94J~L3s}Kr zrU%IpQ>XxY>elW^=Va6Ir35 zF4#DuTZY$-bAdEumm7PV@3}TM-Vi>1e^(Wu-zz3=3iz=?bd^4$9v%F7y@Ga0p^aWD zn&pD~yUVDAK|7h?7GR_8U_4l;QBlgZX!%i{uF2ul2#d6h(pAkgoqs)d4^M?*HCJnq zmRnwCKs@GAiwl$+s&(c}sZ9x0`(QE6{~oRRi!D(lFY=&U@K{zLcUE4rQ$+F@4-Rph z5F-4ln+hQ*T7xZ<#2hFo7YUR8!B!jD9R05QLpAmSf6r>62bhq)Bs~HlDB?s!CtOci z#(_7pc1(LWbaXBZYK(GweCJ9}^_xj#Wv%Z>xu7Ne81rrBK)g!i+%S_Ix;W~j`?Kt} z6~#+mg!N9)C_MKJJVH+A!X7{_l4kCB2DdoxA>pGek?)IL{!I#2Pq?kN;DT8SpKl`H zlSu5GUP@R5J?dv@>fyJ!!;gtZ+m>Wis}{6Yk=(-lw8-g*0zwLWL8Q0e-plpDq`il4 z@R7e)RGdF8Ul@`xVx3;CT3!uREjPYWY}+aCPQ+$grvx}-+dHHAjl^Vme_p7_XCoG| z@gUXQgOsdhdN=6vxs3|8RR~ox-gWgf-3;Wh3!ws*0iL&WiqXg%^Ld3KF7SHdTTS;kMa;RYin5@ z9+p0fLf^q9vN#hOv@V49V5hVJ5vK_tP!K(m%YM&xQB$@RrxjN}Et1>)%dXO^l{fF! zVQsg|JP}$0epa`GZabB7P!?-P@FgIsU0qzB(rIp(=!8mbFPa5vMRg3UMTHN?SRj37 z8I2&>e57MQ14LA8S5J?{@+$0?yc0Go}vy4ShL9RR*L6u|>Igth+rkx=N z6@)gd|k`Opc#=rWl7#=@gvHji-h(t!6oAPh#*-Ed+(HDRG}q7mJ=jmkd$;tJBE8E`hLX{W)`}`lNra4UpTaB z<|NM_-GHk1H3O0GtM~o=3Vhm!jO={BJa?!!j3a;1z zCx{QRv^FM>DLE*95fkQ>iOXGDm%wchVdA!{-rf6kUT>8_nvEx5vl|=EscgX~Om~6= z5~huK(F)spHpU#i-}cQW$DOGedNee4a(CP|H0JY_-CL12Y`j%{PgPp(-zDU6#E;Vy zuUav=PZ!}S)w~OrV@YwRiP!3};071B0|)rbd^bJHuLss@#Txfpi513eUdafl&W2Kq z?^2F8V~H>AVo~hC0Zk0EcHbTr1;Dp9259{+Ym28v!_#_#n-j$U@3jU0|5#fH{NJoC z{`u!V7eIiAkNdCxhGsbjCY^ZZoQkpAp zuKxJEPM)fP8C4VxH!$dGEm-(_PoD>_OBM|cfTg_hJt~{1uFj%+yQps4cFn z0P6(Nqw0V?lS^pg=>Z+TLD| zay6&!6>H!F&k?23&-w!YSt$BLAdWkVGsy8NM`W( z6-QjoBwEyIuz`ThVaUa|nTvj9bhhHd5b$v91>3Iu^EaS?b%b{eY{4G>zDGrs`!-^s z7cMrZ6kQibg>y^nZFuPQFwjEkv2dfn^x&ab|a}TcGi4`}mlwLpING&Le^Ye*ivJ9(Uo zc=(RwESySCI3!5%QiUQHrC$aA64>zMi*Y zM|4RH_!Kd%@3w(_CSPXcMS2_#8plzj8&2=V#8O8GW*)UvCS6iwqPBkmoDg>GQU# zs%D^7s+;7TivR6}YchD1m0DX4v{jm@Xsa0d*t!G8c&biHW#4rB;(r zzox!Pd7l}K%P0&dqRxhC%m>kU7wr%vAfQ8lsZtMVsXmEBc0BTU`3Hq$&O~P`6rqL< zTmMzayq9`B8lbDB8nM%j4;AEQ)n=b|aBqzbOM-Hw}9_l54zT=o+ON!A=DcN**eKaIx-YpGHd!KG# zp8t)!id?6yv8q}46GEC&>bh8vp;Q1R)5`u>lNvl)6295%7hZaw8po*g*%PETrai4Ur+K<+KFFeTn_h2{XAV(ER0i!J$j!&ug;fB!=_$$+q9YMA{y+lciL?pjU-=6BN`Z@P4 zr!i0N$&Y-z*WzFCr=2a zT_hv-^JZvHi@$_l1Z78h<>wS~Q$9+8DoPB%27UN^Vpv&K+-& z+X^xEf#RUOL}Mp!d6{FDu11soo<(?+fP;gXnQNkdVpQv85B)2ok|uu3>TN&xNMo*1 zVl`ddZNr2>JVkB{StQcd{FYcIOqSy3iiL3r`X!!3gm{H>b*Xuycg!In~!H0nQ53ON&jiRct1{r$49DuD^(i+8iu4 z)`mb9eA9_!U91M-t$7Ad=>WB%>snUH(|PJU=TX4i*)n%|nNIfbPtR|f7sU`tUn5D~ ztiEbIT$WmaQgj?o&z3ANdG}4Aa~neuxOGWHMBUO{hUy`KjJO%P(XtL22IZs`+GA<% zCoMBgW^RVEHA_Dr)m`@P@NnaJp}5>Dq`DWx_ZfIvmDaRXS(Yp)i=Im^dlZAGi>tR= z!@kGD?#MEpky{cYO0;EiA)HnO1Ya%bYu>ie|3J&0UB>1nVSko!0SCsPAQ-!%!*2u8 zF};l9d6g(_P~lZe?8WizG_k40 zrt+K7#bmNU>#@O1Jwsg=?5oB6&-pzO*k*EqbY2*CoQ%Cb!5=CxY?!m!8f#xnEH;Po z$rJY%(F_(Qj8L*=XNtPp-E5c_;iRyQQX8N<0%nGe+ zQk0@d%yUJuh*&-*%(iZu33xYMsWL5`O%@RcQkOWhM`wEJd*x8(h$Oh8Tnr!Dt58<< zX#NKB)n{B{A3aNbMDOoSstm83Lq0%m_~fw<7n*&S{aZa3A6YXa+>b{5>MjKD)&fk7 zT{g;{cQ*RAmfCQpTya;5C7v@aT7aq9BY(Jr+m!)xXQpmm6GWCGik8W(5NT1vW0*mQ z-6gQC;?Jg2E(2WAXZ)^T%ozEb9a_YS9Df5+?G|TFiWM~8aGn#)tYGYvpDkukwLQ*U ziy6L`#gSrGkwOYYk)iD`APLX?^fvk9t5@*zZkVDL>tVQ86ITk#O3L?Ua9l}eDXf#z z?8;7!2Mc2B2e(UJ`ht&3(2z0FW;40t8|564kl7rs#=Yb3!}TJ(T{l6WW+}bb>RTLm zQ7{!T4!^o$dG-?G=I-srCzn1E>TZ>8K>#JI<0k%j&mA z3}p_AxE^LFoXrGZ7FqARG~QM;PX-($JBoU7&DsIK4F>;6+T|pC;}Q4f^-S3>AA$mI zm%i||7V9Ud{@XeSQ{ScPj=!m+YQYM#zBBn7C>`M?fnw|Ji=k+{hK+-V}e3*EWs>rMwf7gll z4QLv6*2o!)K<~R|n@V7>LYw+bJ8m^LMA?{QV#!RPK2{%_aG0?bjsjQs3o-Y*=iJiG zj4}?jJ8tRE>q37~=oeIzVA=)aF;mMhRiGx2Og_3ryr)id0&O#M8m4zjV)3Qw%@Smg zBdI5qn0&dN{bJN)X4)dFJ2B=G&v)UlT<^4XvHvph3}uJ)szcKtAZ3zmv03o$>Q@TT zSonJN8r=!63ZI^5id6>=OKWWvf1TvRW zRZej3HLYdf-E~8J!1WK)eGT%t?UkJZqPdhK!KM`TGV7*vY_-sIL5`x zHux(y;iC~c@Ca#ic%H7lgh9C-)9>#qR&3j*=I$T?=%%C_s2a~JDo*e-V%^*B&uWJx z+UR!&W;+^>tW_&3W4=7;L&RV+GXIlL8KQb3{>V!V<*FU^RYB#dfmumvyn63-%G};J z%#)yUL``p)A=2`tx*aTI=1*`hB;UQ zYV44;lsrwEmd;gwe>l9NZN=Q>?W3Y&oi{y2DCehy_zbh$zN5?FHCE!$4<(Z$SYfk( z<`3~EP}w>o&?`y#fJnp9WGvjwTvgK0n$8NKeTANH+UpY6*G{5}u{t#Df03*f-cNel zE!Lf?nus-#u6>sIROTUOAb*bKxU?+fB6Qy685XYX{AnVi3%#6a+G0k+QGMb$xKNt| zDQcDgq56ta^r7Od7mF6{FPrD$><=0@SY;iR{`^C)+4m`1E2XMx;H%{n!6S-gLz0x+2Y#X$B7c^ZGHn_`(wt4t!&~+nbW>ED$ z?@Ny6mI#@Ed&Kv_J`Riy40XZM>L!l|r7yIHL?m6*GFhR*1q@sGNfqQVQ=BYBpYZ8b z;H-ICpi$lEvZs0yxO8`*y*w4MK|Qpki*|tTK(NDzUcpGS%<__^~1CDoHVt!ig;xrXO|fT{uU}=)Ed_ylOjdxQ-3Es|xVG zI7I=<_m#4GuDhdn{G1wZwe{JL_FWeItk-fPv_mI%p+(~#xiFFPUMkd@P`*&RGh;O^ z6;Z%JF@ms&B=Sgdu}LPRao*bYOI=7ofJfun-Lpp&n)tgR{%0<@VR*uJk6uYr7?e&NdjW;@@vid~0?D(74dj z8MZ7H>}fEz0Ot=YVfRVFZREk^vZp1}FNLqng$K`n*ggx^t01+5dOs;rqOG326mmerSDLbAu#OKZIvD9R=u_D3SOgy6en|ko>?Gsvy!8>nrdN_9 zUMrlu2>FrXSAy@vz}OS>G4_~&0qM3O&PSt4OH#tRz9+*D@z{sZh)gZIg3+ShVInmJ z6ETTO-L4Pg^1EK4qt4t(#(=+V+N=S1NJmoaiy5M@Y3#Y_x<{w3jBrvnNUIXV>bnbC z5l!y6StX75lEa%}sR6wh3b)&7)l%=^t&+%Kl#<7$`0PfH{ptLPz0oL?WrgHg!C{sy zFN`@#u1xzWg4n=UOkI&6eZuHwessiM`tZ?h%FzlE7SR*NxG&w4EySM@PsfyYkJ|eR zcqVuIN`wa)*gIpfjY);WVih(`7eM_>-f{H|`7|JOcP}d|IwB$70UiQx273*)M9p4C zA^hn=$hvz-i=@fh3~gMsV&_En%$Qo0?3b^Q7SP*u6UVF%N+QmBf7nsZU2hxo1 zk6wj;8vLrC&mf}nW0W(&fWwRo0+ z2vnew54gTBnD% z5l0Joc!UQCUf2eqn>r#$Ub`heS`@`%;O;Wt!a3v!_BF!?c%xF*{$aKdRF7PWv&fQc z0pvU3q+T`}O4Rx_v@;@tmRc7av0$-0axE11prUPAA4dO>v@WEy>EVS4g@|Vn+C9cS zauKmfX@m5GCM;t$g5XF8>&9x;>XatS%Jf@-MhQsl$G8~9E=0y|8HwnmU?MmnN`G{R zNg=E;@~%OVATnh8MXvN9e&*;2kfP)(u5|b`dM6UTx1^V5I z&E3eg2ySQoU zWNSc(b^OtkuD{XEqhim|V3Kq-XXO-n>RP+r>q3j1&i0`svM0aml%Aod&Uu){g#z#Gf%jw#$1bX5XteGyl2o) z?$j_jh`49BjVt!xsb?NmQnXzlF>-_)X6K=}$jYu6$u#pS?yJ^@{GG{hm)=ZW0MY#i?oaTh`z36^T3?Ez-KKnyg zc5uy18(TeIcBG|aW1ASaf%FVRglk5de&jHpM;n5=>N+WzG@zbRymU+A#{Bq^x@rgXyk2W@uG?8_ucZ056 ziABLjFubEukhi&LKG|>|%1}(SO_o&|9vxov(elF!MeRwcf!Z>|fmh?!t}n<4Qync0 zIn#RuTi(4%FJkozA9&pC4q`2IX&YLyan~co)SWHy+#z*u(Wgi*7b?zoYoVqnEa0^J z#_|0}xORT=gb8lGoL4j<>yeq?Sm)2ssHorFdusmmC7&{YYtebNfj>o{>C&6BxV+$z zOKj6N-p>z}t!g{(?6|&k0Z;G|rp-}N@87|*vS6N_Sz5B~g`Zi)snX>$CU9NQ^5GL9 z5Iv&nJ%1(pzeF9L!U<1N2QU{e-@l^{T%7+2J7{@3Lx8eQj&9NrsD-Povzrs_%mD0B z#moT$l$3b7SXG@Nj+$nUP_(Dh1lCXh2$q3Wk(6}uGGONg2>{r+`8WYwu*e303l`ll z0xGzf+1px3I9l670Gwz*38)3c(G6Ax=0^iQ@p*b;=N8~b14@}W%R_9fZJtU&d}u&T zH;98afFIWAi398m1B4s!6eQ6=gT*}l^+g63*MG+UuQLw={wUJ|d79D0t?eCeG&?Y1fN4*_~m3SoOjWSxG3*9x2hC}Tu7Q6t0o`k|W zO_W+&{m;=Il5ukC)F+=<5XKk3w0rfjr*z!gm9r*Sf+8j@R&}|QHd3$OW#U*HY_M-B zZ6uv?x%OU*oWz_yKgmA*?rU0fhYt-g#B`x{``#yA-e?+<_+pnB)S$?SEFu1mgQdi!ZmcwsZ&zRFeBbY2UF6D74J?NZQ*vAO zP!jlP?nzL@%}Kr76TxBhTr7E29gE@4bP;EDw(fSV#;MZzR~ zu=@EDxz*+#?pI>Z*#81huD_gL`8O7Un(pRqPr%f2b%*?+N}53-Pl)(mAZhCgb(69& zbA3YEOS6CGd0v9)xwff|50IblIFP5>`27y#zt`IESLxd9+PKETtRhnEMy3+95+ zxdC7pgn2>y00C}Z0Ek-vM&n20eJbaA%EQWG3B<_{0Q2z!csY4s?F9gQuzo;%|LB{S zj|=dWxIw%C9-gN!FJ-v2NV(0>f%NooMtYd_f#P|elJLKEU<0EC?*0%}3L z+>HLquKv^NkI>c3tRX-(GuJ0`<$LM?r~!dGxw~3Gpa8BX78*chh^4LBlOK2*Hm?9L zfFHzd1e9}ia(9LeP7|g;nBQ=I>cYYsD5VLreh*sVKd|9=eU>ANqDzYK@#FCT(Q!D7j70B)Gefq@Ue^^Xt2p1=p-`Xi|SlIp)A zzc7LPqa7zu%ht^vA}lK-E6d5r%frbDmVzY#SOUQk3^d%FoSZydqJO-lo57R2(*Ww~ z>BH_Y`2skN{-u>aW6}Vsz%=7(@>tA|NmFU-2YMGA|HAk$ zeE+RD*yQnd@Syz%J+OiP8$M4)p=4_bH30m1Z@`~HJQ4pX^uI9T`b+%$4<{)z*v#W( z4HJ(w45R;01@LM5lCW^Ib#nZNBmsX!>F9265BT%L3F}+c-Ob+C@d?*|)c#-k`_~-$ zBu3crIoJ&OPtAc~+Tw$$3d{w&^TC7$GcQYb3&_9A|D{z}oj>(pngzi$4u-j;Kj}&1 zPul;N#$kDG8JOn5u)hAVf{j@kc7BgZT9BKQi-(hon~RelB)|<~<>X@Io1`QpFRzydI<`dd9d*gWue8bA2>Jn!o1$!>Vdfa`fhHnX0UaP z>ysI3+WJ6XDgtUaIl&C}3B53rk{QP{p++5rOe4J7O pU~YaXZZ0VSZfOBtN&Y9$Lt%f9x&46>7l;SUgGNs;qbiH`e*rfD!Ylv) From 0246842c8854fcb49ffa34bcf46c61f2b7da95b2 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Fri, 25 Jan 2013 01:41:11 +0100 Subject: [PATCH 22/26] Enable single wire via ioctl calls and pull the battery voltage from the battery status topic. --- apps/hott_telemetry/hott_telemetry_main.c | 37 ++--------------------- apps/hott_telemetry/messages.c | 10 +++++- nuttx/include/nuttx/serial/tioctl.h | 2 +- 3 files changed, 12 insertions(+), 37 deletions(-) diff --git a/apps/hott_telemetry/hott_telemetry_main.c b/apps/hott_telemetry/hott_telemetry_main.c index ae6c69b99d..d67ab06a98 100644 --- a/apps/hott_telemetry/hott_telemetry_main.c +++ b/apps/hott_telemetry/hott_telemetry_main.c @@ -134,41 +134,8 @@ static int open_uart(const char *device, struct termios *uart_config_original) FATAL_MSG(msg); } - /* Get the appropriate GPIO pin and control register */ - uint32_t gpio_uart = GPIO_USART2_TX;; - uint32_t uart_cr3 = STM32_USART2_CR3; - - switch (device[strlen(device) - 1]) { - case '0': - gpio_uart = GPIO_USART1_TX; - uart_cr3 = STM32_USART1_CR3; - break; - - case '1': - gpio_uart = GPIO_USART2_TX; - uart_cr3 = STM32_USART2_CR3; - break; - - case '3': - gpio_uart = GPIO_USART6_TX; - uart_cr3 = STM32_USART6_CR3; - break; - - default: - sprintf(msg, "%s is not supported.\n", device); - close(uart); - FATAL_MSG(msg); - break; - } - - /* Change the TX port to be open-drain */ - stm32_configgpio(gpio_uart | GPIO_OPENDRAIN); - - /* Turn on half-duplex mode */ - uint32_t cr; - cr = getreg32(uart_cr3); - cr |= (USART_CR3_HDSEL); - putreg32(cr, uart_cr3); + /* Activate single wire mode */ + ioctl(uart, TIOCSSINGLEWIRE, SER_SINGLEWIRE_ENABLED); return uart; } diff --git a/apps/hott_telemetry/messages.c b/apps/hott_telemetry/messages.c index dce16f3710..8bfb997737 100644 --- a/apps/hott_telemetry/messages.c +++ b/apps/hott_telemetry/messages.c @@ -42,12 +42,15 @@ #include #include #include +#include #include +static int battery_sub = -1; static int sensor_sub = -1; void messages_init(void) { + battery_sub = orb_subscribe(ORB_ID(battery_status)); sensor_sub = orb_subscribe(ORB_ID(sensor_combined)); } @@ -58,6 +61,11 @@ void build_eam_response(uint8_t *buffer, int *size) memset(&raw, 0, sizeof(raw)); orb_copy(ORB_ID(sensor_combined), sensor_sub, &raw); + /* get a local copy of the battery data */ + struct battery_status_s battery; + memset(&battery, 0, sizeof(battery)); + orb_copy(ORB_ID(battery_status), battery_sub, &battery); + struct eam_module_msg msg; *size = sizeof(msg); memset(&msg, 0, *size); @@ -67,7 +75,7 @@ void build_eam_response(uint8_t *buffer, int *size) msg.sensor_id = EAM_SENSOR_ID; msg.temperature1 = (uint8_t)(raw.baro_temp_celcius + 20); msg.temperature2 = TEMP_ZERO_CELSIUS; - msg.main_voltage_L = (uint8_t)(raw.battery_voltage_v * 10); + msg.main_voltage_L = (uint8_t)(battery.voltage_v * 10); uint16_t alt = (uint16_t)(raw.baro_alt_meter + 500); msg.altitude_L = (uint8_t)alt & 0xff; diff --git a/nuttx/include/nuttx/serial/tioctl.h b/nuttx/include/nuttx/serial/tioctl.h index 9edc7e87f9..a98b487a66 100644 --- a/nuttx/include/nuttx/serial/tioctl.h +++ b/nuttx/include/nuttx/serial/tioctl.h @@ -177,7 +177,7 @@ #define TIOCSSINGLEWIRE _TIOC(0x002c) /* Set single-wire mode */ #define TIOCGSINGLEWIRE _TIOC(0x002d) /* Get single-wire mode */ -# define SER_SINGLEWIRE_ENABLED (1 << 0) /* Enable/disble single-wire support */ +# define SER_SINGLEWIRE_ENABLED (1 << 0) /* Enable/disable single-wire support */ /* Debugging */ From bd5887b4cae08dd378c03280e6c3ddafcec729c1 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Fri, 25 Jan 2013 10:44:21 +0100 Subject: [PATCH 23/26] Move the config param to a more sane location (I hope). --- nuttx/configs/px4fmu/nsh/defconfig | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/nuttx/configs/px4fmu/nsh/defconfig b/nuttx/configs/px4fmu/nsh/defconfig index d669da83ab..fd783dec5d 100755 --- a/nuttx/configs/px4fmu/nsh/defconfig +++ b/nuttx/configs/px4fmu/nsh/defconfig @@ -200,6 +200,12 @@ CONFIG_STM32_TIM9=y CONFIG_STM32_TIM10=y CONFIG_STM32_TIM11=y +# +# Enable single wire support. If this is not defined, then this mode cannot +# be enabled. +# +CONFIG_STM32_USART_SINGLEWIRE=y + # # We want the flash prefetch on for max performance. # @@ -226,8 +232,6 @@ CONFIG_AT24XX_MTD_BLOCKSIZE=256 # CONFIG_SERIAL_CONSOLE_REINIT - re-initializes the console serial port # immediately after creating the /dev/console device. This is required # if the console serial port has RX DMA enabled. -# CONFIG_STM32_USART_SINGLEWIRE - Serial driver supports single wire mode. If -# this is not defined, then this mode cannot be enabled. # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the # console and ttys0 (default is the USART1). @@ -242,7 +246,6 @@ CONFIG_AT24XX_MTD_BLOCKSIZE=256 # CONFIG_SERIAL_TERMIOS=y CONFIG_SERIAL_CONSOLE_REINIT=y -CONFIG_STM32_USART_SINGLEWIRE=y CONFIG_USART1_SERIAL_CONSOLE=y CONFIG_USART2_SERIAL_CONSOLE=n From ba9da977321c088ef36e574c61117425215d0486 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Sat, 26 Jan 2013 12:07:27 +0100 Subject: [PATCH 24/26] Updated RC mode switching docs, merged with Julian --- Documentation/rc_mode_switch.odg | Bin 18566 -> 14451 bytes Documentation/rc_mode_switch.pdf | Bin 18022 -> 17261 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/rc_mode_switch.odg b/Documentation/rc_mode_switch.odg index 0e47789a828e347ad258b0f2af662dee8d321044..08e05fe63095b95c0f351e48f44854fd326f87d5 100644 GIT binary patch delta 9637 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ΝPCSpv`|A?s;Q5gcQXZDIcU3 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 delta 13789 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 a;>W|&%-!>^*Z}f!Lm+7M^wO#_X#WQ*ZfLUr delta 14428 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 k#X*uhT#`~!5`W6n)y>4k?XMC9a Date: Sat, 26 Jan 2013 13:07:33 +0100 Subject: [PATCH 25/26] Another diagram update --- Documentation/rc_mode_switch.odg | Bin 14451 -> 13124 bytes Documentation/rc_mode_switch.pdf | Bin 17261 -> 15658 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/rc_mode_switch.odg b/Documentation/rc_mode_switch.odg index 08e05fe63095b95c0f351e48f44854fd326f87d5..8e5bfc216ab4b88a6e56199dd3de41543e171ca3 100644 GIT binary patch delta 10452 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 delta 11687 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 diff --git a/Documentation/rc_mode_switch.pdf b/Documentation/rc_mode_switch.pdf index 93f53332a80f98c3004fffb447a781c0dec8b4f4..27dbb951acf1883a4ce71029414a96a9d99a5b7e 100644 GIT binary patch delta 14381 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 From 6fca6e00f135697554eb30c0709b28b47f8e95dd Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Sun, 27 Jan 2013 12:44:06 +0100 Subject: [PATCH 26/26] Updated state machine docs after first review round --- Documentation/rc_mode_switch.odg | Bin 13124 -> 14631 bytes Documentation/rc_mode_switch.pdf | Bin 15658 -> 15841 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/rc_mode_switch.odg b/Documentation/rc_mode_switch.odg index 8e5bfc216ab4b88a6e56199dd3de41543e171ca3..e35a83372b18cf42baf2e68dea03be681e2ef760 100644 GIT binary patch delta 9576 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 LoLo#n9Pa-BN%_P# delta 13714 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 QgM|ZxKuIaCD1q>Q0jj`%LI3~&