ソースの整理中ですが、利用はできます。 大きなファイルはできないかもしれません。

Dependencies:   EthernetInterface HttpServer TextLCD expatlib mbed-rpc mbed-rtos mbed Socket lwip-eth lwip-sys lwip

Fork of giken9_HTMLServer_Sample by Yasushi TAUCHI

main.cpp

Committer:
yueee_yt
Date:
2014-03-12
Revision:
2:6f25f8327180
Parent:
1:bd7da995f192

File content as of revision 2:6f25f8327180:

//#define DNS_SERVER_ADDRESS(ipaddr)        (ip4_addr_set_u32(ipaddr, ipaddr_addr("208.67.222.222"))) /* resolver1.opendns.com */
#include "mbed.h"
#include "rtos.h"
#include "EthernetInterface.h"
#include "HTTPServer.h"
#include "mbed_rpc.h"
#include "TextLCD.h"

EthernetInterface eth;
LocalFileSystem local("local");
DigitalOut led4(LED4);

DigitalOut led1(LED1);
AnalogIn ain(p20);

TextLCD lcd(p24, p26, p27, p28, p29, p30);

float Temp;

void LcdWrite(Arguments* arg, Reply* r);void LcdWrite(Arguments* arg, Reply* r);
void aliveState(void const *args)
{
    while (true) {
        led4 = !led4;
        Thread::wait(1000);
    }
}

void measure(void const *n)
{
    Temp=ain.read()*3.3*100;
    led1=!led1;
}

int main()
{
    printf("********* PROGRAM START ***********\r\n");
    Thread thread(aliveState);
    
    led1=0;
    RtosTimer measure_timer(measure);
    measure_timer.start(2000);
    
    lcd.cls();
    lcd.locate(0,0);
    
    printf("********* RPC Initialize ***********\r\n");
    RPC::add_rpc_class<RpcDigitalOut>();
    RPC::construct<RpcDigitalOut, PinName, const char*>(LED1, "led1");
    RPC::construct<RpcDigitalOut, PinName, const char*>(LED2, "led2");
    RPC::construct<RpcDigitalOut, PinName, const char*>(LED3, "led3");
    RPCFunction rpcFunc(LcdWrite, "LcdWrite"); 
    RPCVariable <float>rpcval(&Temp,"temp");
    printf("EthernetInterface Setting up...\r\n");
    if(eth.init()!=0) {                             //for DHCP Server
       // if(eth.init("133.11.168.23","255.255.255.0","133.11.168.1")!=0) { //for Static IP Address
        printf("EthernetInterface Initialize Error \r\n");
        return -1;
    }
    if(eth.connect()!=0) {
        printf("EthernetInterface Connect Error \r\n");
        return -1;
    }
    printf("IP Address is %s\r\n", eth.getIPAddress());
    printf("NetMask is %s\r\n", eth.getNetworkMask());
    printf("Gateway Address is %s\r\n", eth.getGateway());
    printf("Ethernet Setup OK\r\n");

    FSHandler::mount("/local","/");
    
    lcd.locate(0,0);
    lcd.printf("%s",eth.getIPAddress());
    HTTPServerStart(80);
}

void LcdWrite(Arguments* arg, Reply* r)  //RPC Call
{
    lcd.locate(0,1);
    lcd.printf("%s",arg->argv[0]);
}