38 #include "esos_pc_stdio.h"
43 #include <sys/select.h>
53 struct termios stored_settings;
60 void __esos_hw_signal_start_tx(
void) {
61 while (__st_TxBuffer.u16_Head != __st_TxBuffer.u16_Tail) {
62 __st_TxBuffer.u16_Tail++;
63 if (__st_TxBuffer.u16_Tail == ESOS_SERIAL_IN_EP_SIZE)
64 __st_TxBuffer.u16_Tail = 0;
67 waddch( __st_TxBuffer.pau8_Data[__st_TxBuffer.u16_Tail] );
69 printf(
"%c", __st_TxBuffer.pau8_Data[__st_TxBuffer.u16_Tail]);
76 void __esos_hw_signal_stop_tx(
void) {
88 __st_RxBuffer.u16_Head++;
89 if (__st_RxBuffer.u16_Head == ESOS_SERIAL_OUT_EP_SIZE)
90 __st_RxBuffer.u16_Head = 0;
92 __st_RxBuffer.pau8_Data[__st_RxBuffer.u16_Head] = u8_c;
114 if (select(1, &read_fd, NULL, NULL, &tv) == -1)
117 if (FD_ISSET(0,&read_fd))
124 void set_keypress(
void) {
125 struct termios new_settings;
127 tcgetattr(0,&stored_settings);
128 new_settings = stored_settings;
131 new_settings.c_lflag &= (~ICANON);
132 new_settings.c_cc[VTIME] = 0;
133 new_settings.c_cc[VMIN] = 1;
134 new_settings.c_lflag &= (~ECHO);
135 tcsetattr(0,TCSANOW,&new_settings);
139 void reset_keypress(
void) {
140 tcsetattr(0,TCSANOW,&stored_settings);
161 void __esos_hw_InitCommSystem(
void) {
168 keypad(stdscr,
TRUE);
171 printw(
"Hello from ESOS -- the PC/Linux version w/ NCURSES\n");
175 printf (
"Hello from ESOS -- the PC/Linux version\n");
214 return ESOS_SERIAL_OUT_EP_SIZE;
242 return ESOS_SERIAL_IN_EP_SIZE;
261 uint8_t _esos_hw_GetSerialUartVersion(
void) {
262 return ESOS_COMM_SYS_SERIAL_REV;