SNIC UART Interface library: Serial to Wi-Fi library for Murata TypeYD Wi-Fi module. For more information about TypeYD: http://www.murata.co.jp/products/microwave/module/lbwb1zzydz/index.html

Dependents:   SNIC-xively-jumpstart-demo SNIC-FluentLogger-example TCPEchoServer murataDemo ... more

Fork of YDwifiInterface by Takao Kishino

Committer:
kishino
Date:
Thu Mar 06 11:13:00 2014 +0000
Revision:
0:61c402886fbb
Child:
2:0ba43344c814
The common method which creates a UART command request was created.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kishino 0:61c402886fbb 1 #include "mbed.h"
kishino 0:61c402886fbb 2 #include "YDwifi.h"
kishino 0:61c402886fbb 3 #include "YDwifi_uartmsg.h"
kishino 0:61c402886fbb 4 #include <string>
kishino 0:61c402886fbb 5 //#include <algorithm>
kishino 0:61c402886fbb 6
kishino 0:61c402886fbb 7 C_YDwifi *C_YDwifi::mInstance_p;
kishino 0:61c402886fbb 8
kishino 0:61c402886fbb 9 C_YDwifi::C_YDwifi(PinName tx, PinName rx, PinName cts, PinName rts, PinName reset, PinName alarm, int baud):
kishino 0:61c402886fbb 10 mUart(tx, rx), mModuleReset(reset)
kishino 0:61c402886fbb 11 {
kishino 0:61c402886fbb 12 mUartRecvThread_p = NULL;
kishino 0:61c402886fbb 13 mInstance_p = this;
kishino 0:61c402886fbb 14 mUartRequestSeq = 0;
kishino 0:61c402886fbb 15
kishino 0:61c402886fbb 16 printf("baud:%d\r\n", baud);
kishino 0:61c402886fbb 17 mUart.baud( baud );
kishino 0:61c402886fbb 18 }
kishino 0:61c402886fbb 19
kishino 0:61c402886fbb 20 int C_YDwifi::initUart()
kishino 0:61c402886fbb 21 {
kishino 0:61c402886fbb 22 // Create UART recv thread
kishino 0:61c402886fbb 23 mUartRecvThread_p = new Thread( C_YDwifi::uartRecvThread );
kishino 0:61c402886fbb 24 if( mUartRecvThread_p == NULL )
kishino 0:61c402886fbb 25 {
kishino 0:61c402886fbb 26 printf("[C_YDwifi::initUart] thread cread failed\r\n");
kishino 0:61c402886fbb 27 return -1;
kishino 0:61c402886fbb 28 }
kishino 0:61c402886fbb 29
kishino 0:61c402886fbb 30 // set intr callback function
kishino 0:61c402886fbb 31 mUart.attach( this, &C_YDwifi::uartIntr_callback, Serial::RxIrq );
kishino 0:61c402886fbb 32
kishino 0:61c402886fbb 33 return 0;
kishino 0:61c402886fbb 34 }
kishino 0:61c402886fbb 35
kishino 0:61c402886fbb 36 void C_YDwifi::uartIntr_callback( void )
kishino 0:61c402886fbb 37 {
kishino 0:61c402886fbb 38 #if 0
kishino 0:61c402886fbb 39 C_YDwifi *instance = C_YDwifi::getInstance();
kishino 0:61c402886fbb 40 instance->mUart.putc('G');
kishino 0:61c402886fbb 41 instance->mUartRecvThread_p->signal_set(1);
kishino 0:61c402886fbb 42 #else
kishino 0:61c402886fbb 43 mUart.putc('G');
kishino 0:61c402886fbb 44 mUartRecvThread_p->signal_set(1);
kishino 0:61c402886fbb 45 #endif
kishino 0:61c402886fbb 46 }
kishino 0:61c402886fbb 47
kishino 0:61c402886fbb 48 void C_YDwifi::uartRecvThread (void const *args_p) {
kishino 0:61c402886fbb 49 C_YDwifi *instance_p = C_YDwifi::getInstance();
kishino 0:61c402886fbb 50 if ( instance_p == NULL )
kishino 0:61c402886fbb 51 {
kishino 0:61c402886fbb 52 printf("Socket constructor error: no wifly instance available!\r\n");
kishino 0:61c402886fbb 53 }
kishino 0:61c402886fbb 54
kishino 0:61c402886fbb 55 int recvdata = 0;
kishino 0:61c402886fbb 56 printf("uartRecvThread\r\n");
kishino 0:61c402886fbb 57
kishino 0:61c402886fbb 58 /* UART recv thread main loop */
kishino 0:61c402886fbb 59 for (;;)
kishino 0:61c402886fbb 60 {
kishino 0:61c402886fbb 61 Thread::signal_wait(1);
kishino 0:61c402886fbb 62 // wait(0.1);
kishino 0:61c402886fbb 63 recvdata = instance_p->mUart.getc();
kishino 0:61c402886fbb 64 printf( "[thread]%02x\r\n", recvdata );
kishino 0:61c402886fbb 65 }
kishino 0:61c402886fbb 66 }
kishino 0:61c402886fbb 67