sample program of Web socket server.

Dependencies:   mbed WS_SERVER EthernetInterface HTTP_SERVER

main.cpp

Committer:
aktk
Date:
2020-10-21
Revision:
0:6a6f021d1f40

File content as of revision 0:6a6f021d1f40:

#include "mbed.h"
#include "WS_SERVER.h"
#include "HTTP_SERVER.h"
#include "rtos.h"
#ifndef DEBUG
//#define DEBUG
#endif

WSS wss(1024);
HttpServer httpsvr;
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
Serial pc(USBTX, USBRX);

void httpServerThread(void const* argument)
{
    if(httpsvr.init()) {
        if(httpsvr.run() == 0)
            printf("end\r\n");
        else
            printf("error end\r\n");
    }
}
void test(void const* argument)
{
    while(true) { //wss.isListening()) {
        led1 = !led1;
        Thread::wait(500);
    }
}

void websocketServerThread()//void const* argument)
{
    //
    //  Websocket communication
    //
    //wss.txPing();
    if(wss.init()) {
        while(wss.isListening())wss.run();
    }

    //  -----Websocket com end-----
    led3=led4=0;
}

void printRxData(void const* argument)
{
    char l_data;
    wss.txPing();
    while(1) {
        if(wss.isReadable()) {
            l_data = (char)wss.getRxData();
            printf("(printRxData) %c(%d) \r\n", l_data, l_data);
        }
        else{
            printf("no printings\r\n");
            Thread::wait(500);
        }
    }
}

int main()
{
    //Thread httpListener(httpServerThread, NULL, osPriorityNormal, (DEFAULT_STACK_SIZE * 2.25));
    //httpServerThread();
    Thread wssListener(websocketServerThread, NULL, osPriorityNormal, (DEFAULT_STACK_SIZE * 2.25));
    //Thread::wait(5000);
    Thread printTaske(printRxData);
    //websocketServerThread();
    //wssListener.start(websocketServerThread);
    //printTaske.start(printRxData);
    //wssListener.terminate();
    //printTaske.terminate();
    return 0;
}