[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paparazzi-commits] [4756] add simulated uart over stdin and stdout
From: |
Pascal Brisset |
Subject: |
[paparazzi-commits] [4756] add simulated uart over stdin and stdout |
Date: |
Mon, 29 Mar 2010 15:44:46 +0000 |
Revision: 4756
http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=4756
Author: hecto
Date: 2010-03-29 15:44:46 +0000 (Mon, 29 Mar 2010)
Log Message:
-----------
add simulated uart over stdin and stdout
Modified Paths:
--------------
paparazzi3/trunk/sw/airborne/sim/uart_hw.h
Added Paths:
-----------
paparazzi3/trunk/sw/airborne/sim/sim_uart_hw.c
Added: paparazzi3/trunk/sw/airborne/sim/sim_uart_hw.c
===================================================================
--- paparazzi3/trunk/sw/airborne/sim/sim_uart_hw.c
(rev 0)
+++ paparazzi3/trunk/sw/airborne/sim/sim_uart_hw.c 2010-03-29 15:44:46 UTC
(rev 4756)
@@ -0,0 +1,5 @@
+#include "uart_hw.h"
+
+char stdinout_buffer[STDINOUT_BUFFER_SIZE];
+uint8_t stdinout_rx_insert_idx = 0;
+uint8_t stdinout_rx_extract_idx = 0;
Modified: paparazzi3/trunk/sw/airborne/sim/uart_hw.h
===================================================================
--- paparazzi3/trunk/sw/airborne/sim/uart_hw.h 2010-03-29 15:42:22 UTC (rev
4755)
+++ paparazzi3/trunk/sw/airborne/sim/uart_hw.h 2010-03-29 15:44:46 UTC (rev
4756)
@@ -0,0 +1,40 @@
+#include <stdbool.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <sys/select.h>
+#include <unistd.h>
+#include <assert.h>
+
+#define STDINOUT_BUFFER_SIZE 256
+#define FD_STDIN 0
+
+extern char stdinout_buffer[STDINOUT_BUFFER_SIZE];
+extern uint8_t stdinout_rx_insert_idx;
+extern uint8_t stdinout_rx_extract_idx;
+
+
+static inline bool StdInOutChAvailable(void) {
+ struct timeval tv;
+ fd_set fds;
+ tv.tv_sec = 0;
+ tv.tv_usec = 0;
+ FD_ZERO(&fds);
+ FD_SET(FD_STDIN, &fds);
+ select(1, &fds, NULL, NULL, &tv);
+ if (FD_ISSET(FD_STDIN, &fds)) {
+ char tmp_buf[STDINOUT_BUFFER_SIZE];
+ uint8_t n = read(FD_STDIN, tmp_buf, STDINOUT_BUFFER_SIZE);
+ unsigned int i;
+ for(i = 0; i < n; i++) {
+ stdinout_buffer[stdinout_rx_insert_idx] = tmp_buf[i];
+ stdinout_rx_insert_idx++; /* Auto overflow */
+ }
+ }
+ return (stdinout_rx_insert_idx != stdinout_rx_extract_idx);
+}
+
+#define StdInOutTransmit(_char) putchar(_char)
+#define StdInOutGetch() ({ \
+ assert(stdinout_rx_insert_idx != stdinout_rx_extract_idx); \
+ stdinout_buffer[stdinout_rx_extract_idx++]; \
+})
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paparazzi-commits] [4756] add simulated uart over stdin and stdout,
Pascal Brisset <=