You can turn on the TV everywhere.
Dependencies: RemoteIR WIZnetInterface mbed
Revision 0:5cc1166c695e, committed 2015-08-26
- Comitter:
- jehoon
- Date:
- Wed Aug 26 14:04:54 2015 +0000
- Commit message:
- You can turn on the TV everywhere.
Changed in this revision
diff -r 000000000000 -r 5cc1166c695e RemoteIR.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RemoteIR.lib Wed Aug 26 14:04:54 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/shintamainjp/code/RemoteIR/#268cc2ab63bd
diff -r 000000000000 -r 5cc1166c695e WIZnetInterface.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIZnetInterface.lib Wed Aug 26 14:04:54 2015 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/teams/WIZnet/code/WIZnetInterface/#3b64df29662f
diff -r 000000000000 -r 5cc1166c695e main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Aug 26 14:04:54 2015 +0000 @@ -0,0 +1,135 @@ +/** + * RemoteIR library - Test program. + * + * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems) + * http://shinta.main.jp/ + */ + +#include <mbed.h> + +#include "EthernetInterface.h" +#include "TransmitterIR.h" +#include "RemoteIR.h" + +TransmitterIR ir_tx(D5); +Serial pc(USBTX, USBRX); + + +int transmit(RemoteIR::Format format, uint8_t *buf, int bitlength, int timeout = 1000) { + int cnt = 0; + while (ir_tx.getState() != TransmitterIR::Idle) { + cnt++; + if (timeout < cnt) { + return -1; + } + } + return ir_tx.setData(format, buf, bitlength); +} + + +void sort_data(char *buf, int n, char *type, char *cmd){ + + bool flag = 0; + int s = 0; + int i, j; + int addBinary = 1; + int pontOfcommand = 0; + //devide + for(i=0;i<n;i++){ + if(buf[i]==','){ + flag = 1; + s = i; + continue; + } + if(flag){ + j = i-(s+1); + + if(j%8 == 0 && j != 0) {pontOfcommand++; addBinary = 1;} + + if(buf[i] == '1') cmd[pontOfcommand] += addBinary; + + addBinary*=2; + } + else + type[i] = buf[i]; + } +} + +/** + * Entry point. + */ +int main(void) { + pc.baud(115200); + RemoteIR::Format format; + + pc.printf("Wait a second...\r\n"); + + int phy_link; + uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; + EthernetInterface eth; + eth.init(mac_addr); //Use DHCP + eth.connect(); + do{ + phy_link = eth.ethernet_link(); + pc.printf("..."); + wait(2); + }while(!phy_link); + printf("\r\n"); + pc.printf("Server IP Address is %s\r\n", eth.getIPAddress()); + + TCPSocketServer server; + server.bind(5000); + server.listen(); + + + while (1) { + + //char buf[50]="NEC,00100000110111110001000011101111\n"; + + printf("Wait for new connection...\r\n"); + TCPSocketConnection client; + server.accept(client); + client.set_blocking(false, 15000); // Timeout after (1.5)s + printf("Connection from: %s\r\n", client.get_address()); + + while (true) { + char buf[50] = {0}; + char type[10] = {0}; + char cmd[4] = {0}; + int bitlength=0; + int n = client.receive(buf, sizeof(buf)); + if(n <= 0) continue; + + // print received message to terminal + //buf[n] = '\0'; + pc.printf("Received message from Client :\n %s\n",buf); + + sort_data(buf, n, type, cmd); + + if(!strncmp(type,"NEC",strlen("NEC"))) + format = RemoteIR::NEC; + else if(!strncmp(type,"AEHA",strlen("AEHA"))) + format = RemoteIR::AEHA; + else if(!strncmp(type,"SONY",strlen("SONY"))) + format = RemoteIR::SONY; + else if(!strncmp(type,"NEC_REPEAT",strlen("NEC_REPEAT"))) + format = RemoteIR::NEC_REPEAT; + else if(!strncmp(type,"AEHA_REPEAT",strlen("AEHA_REPEAT"))) + format = RemoteIR::AEHA_REPEAT; + else + format = RemoteIR::UNKNOWN; + + pc.printf("SEND HEX: %2x %2x %2x %2x\n",cmd[0],cmd[1],cmd[2],cmd[3]); + + { + bitlength = transmit(format, (uint8_t*)cmd, 32); + if (bitlength < 0) { + continue; + } + } + client.close(); + } + + } +} +
diff -r 000000000000 -r 5cc1166c695e mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Aug 26 14:04:54 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/8ed44a420e5c \ No newline at end of file