ハイパー・マイコン mbedでインターネット 電子工作 3章 リスト3-2 UDPJoystickのプログラム
Dependencies: EthernetInterface TextLCD mbed-rtos mbed
main.cpp@0:7990a8b069d4, 2014-07-09 (annotated)
- Committer:
- sunifu
- Date:
- Wed Jul 09 14:08:42 2014 +0000
- Revision:
- 0:7990a8b069d4
2014.07.29
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sunifu | 0:7990a8b069d4 | 1 | #include "mbed.h" |
sunifu | 0:7990a8b069d4 | 2 | #include "EthernetInterface.h" |
sunifu | 0:7990a8b069d4 | 3 | #include "TextLCD.h" |
sunifu | 0:7990a8b069d4 | 4 | |
sunifu | 0:7990a8b069d4 | 5 | #define SERVER_ADDRESS "192.168.0.7" |
sunifu | 0:7990a8b069d4 | 6 | #define SERVER_PORT 55555 |
sunifu | 0:7990a8b069d4 | 7 | |
sunifu | 0:7990a8b069d4 | 8 | TextLCD lcd(p24,p26,p27,p28,p29,p30); |
sunifu | 0:7990a8b069d4 | 9 | |
sunifu | 0:7990a8b069d4 | 10 | AnalogIn ud(p19); |
sunifu | 0:7990a8b069d4 | 11 | AnalogIn lr(p20); |
sunifu | 0:7990a8b069d4 | 12 | |
sunifu | 0:7990a8b069d4 | 13 | UDPSocket client; |
sunifu | 0:7990a8b069d4 | 14 | Endpoint DataServer; |
sunifu | 0:7990a8b069d4 | 15 | float udData,lrData; |
sunifu | 0:7990a8b069d4 | 16 | char ipaddr[15]; |
sunifu | 0:7990a8b069d4 | 17 | |
sunifu | 0:7990a8b069d4 | 18 | unsigned int cnt = 1; |
sunifu | 0:7990a8b069d4 | 19 | |
sunifu | 0:7990a8b069d4 | 20 | void sendData(void const *arg) |
sunifu | 0:7990a8b069d4 | 21 | { |
sunifu | 0:7990a8b069d4 | 22 | char out_buffer[42]; |
sunifu | 0:7990a8b069d4 | 23 | |
sunifu | 0:7990a8b069d4 | 24 | while(true) |
sunifu | 0:7990a8b069d4 | 25 | { |
sunifu | 0:7990a8b069d4 | 26 | Thread::wait(1000); |
sunifu | 0:7990a8b069d4 | 27 | |
sunifu | 0:7990a8b069d4 | 28 | sprintf(out_buffer,"%s,%u,%.2f,%.2f,",ipaddr,cnt,udData,lrData); |
sunifu | 0:7990a8b069d4 | 29 | |
sunifu | 0:7990a8b069d4 | 30 | client.sendTo(DataServer, out_buffer, sizeof(out_buffer)) ; |
sunifu | 0:7990a8b069d4 | 31 | |
sunifu | 0:7990a8b069d4 | 32 | printf("Send Data[%s]\r\n",out_buffer); |
sunifu | 0:7990a8b069d4 | 33 | |
sunifu | 0:7990a8b069d4 | 34 | lcd.locate(0,1); |
sunifu | 0:7990a8b069d4 | 35 | lcd.printf("UD%0.2f : LR%0.2f",udData,lrData); |
sunifu | 0:7990a8b069d4 | 36 | |
sunifu | 0:7990a8b069d4 | 37 | cnt++; |
sunifu | 0:7990a8b069d4 | 38 | } |
sunifu | 0:7990a8b069d4 | 39 | } |
sunifu | 0:7990a8b069d4 | 40 | |
sunifu | 0:7990a8b069d4 | 41 | int main() { |
sunifu | 0:7990a8b069d4 | 42 | EthernetInterface eth; |
sunifu | 0:7990a8b069d4 | 43 | |
sunifu | 0:7990a8b069d4 | 44 | eth.init(); |
sunifu | 0:7990a8b069d4 | 45 | |
sunifu | 0:7990a8b069d4 | 46 | eth.connect(); |
sunifu | 0:7990a8b069d4 | 47 | |
sunifu | 0:7990a8b069d4 | 48 | client.init(); |
sunifu | 0:7990a8b069d4 | 49 | |
sunifu | 0:7990a8b069d4 | 50 | DataServer.set_address(SERVER_ADDRESS, SERVER_PORT); |
sunifu | 0:7990a8b069d4 | 51 | sprintf(ipaddr,"%s",eth.getIPAddress()); |
sunifu | 0:7990a8b069d4 | 52 | |
sunifu | 0:7990a8b069d4 | 53 | lcd.cls(); |
sunifu | 0:7990a8b069d4 | 54 | lcd.locate(0,0); |
sunifu | 0:7990a8b069d4 | 55 | lcd.printf("%s",ipaddr); |
sunifu | 0:7990a8b069d4 | 56 | |
sunifu | 0:7990a8b069d4 | 57 | Thread thread(sendData); |
sunifu | 0:7990a8b069d4 | 58 | while(1) { |
sunifu | 0:7990a8b069d4 | 59 | udData = ud; |
sunifu | 0:7990a8b069d4 | 60 | lrData = lr; |
sunifu | 0:7990a8b069d4 | 61 | } |
sunifu | 0:7990a8b069d4 | 62 | } |