00001
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #include "mos.h"
00037 #include "com.h"
00038
00039
00040 void _forward_up_thread()
00041 {
00042 com_mode(IFACE_RADIO, IF_LISTEN);
00043
00044 while(1) {
00045 comBuf* p = com_recv(IFACE_RADIO);
00046
00047 #if PLATFORM_TELOSB
00048 com_send(IFACE_SERIAL2, p);
00049 #else
00050 com_send(IFACE_SERIAL, p);
00051 #endif
00052 com_free_buf(p);
00053 }
00054 }
00055
00056
00057 void _forward_dn_thread()
00058 {
00059 #if PLATFORM_TELOSB
00060 com_mode(IFACE_SERIAL2, IF_LISTEN);
00061 #else
00062 com_mode(IFACE_SERIAL, IF_LISTEN);
00063 #endif
00064
00065 while(1) {
00066 #if PLATFORM_TELOSB
00067 comBuf* p = com_recv(IFACE_SERIAL2);
00068 #else
00069 comBuf* p = com_recv(IFACE_SERIAL);
00070 #endif
00071
00072 com_send(IFACE_RADIO, p);
00073 com_free_buf(p);
00074 }
00075 }
00076
00077
00078 void start(void)
00079 {
00080 mos_thread_new(_forward_up_thread, 128, PRIORITY_NORMAL);
00081 mos_thread_new(_forward_dn_thread, 128, PRIORITY_NORMAL);
00082 }
00083