node connector for us

Committer:
3116redtrain
Date:
Fri Dec 16 10:22:29 2016 +0000
Revision:
2:0dd332c09bf1
Parent:
1:52e1dae5dce9
resolve an error;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
3116redtrain 0:a64827e7b41c 1 #include "CushionNodeConnector.h"
3116redtrain 0:a64827e7b41c 2
3116redtrain 0:a64827e7b41c 3 CushionNodeConnector::CushionNodeConnector(char * hostAndPort){
3116redtrain 0:a64827e7b41c 4 socketio= new SocketIO(hostAndPort);
3116redtrain 2:0dd332c09bf1 5 MESS_STOP = 0x01;
3116redtrain 2:0dd332c09bf1 6 MESS_START = 0x02;
3116redtrain 2:0dd332c09bf1 7 MESS_SIT = 0x11;
3116redtrain 2:0dd332c09bf1 8 MESS_FRUST = 0x12;
3116redtrain 0:a64827e7b41c 9 type_name[MESS_STOP]="stop";
3116redtrain 0:a64827e7b41c 10 type_name[MESS_START]="start";
3116redtrain 0:a64827e7b41c 11 type_name[MESS_SIT]="status_sit";
3116redtrain 0:a64827e7b41c 12 type_name[MESS_FRUST]="status_frust";
3116redtrain 0:a64827e7b41c 13 name_type["stop"]=MESS_STOP;
3116redtrain 0:a64827e7b41c 14 name_type["start"]=MESS_START;
3116redtrain 0:a64827e7b41c 15 name_type["status_sit"]=MESS_SIT;
3116redtrain 0:a64827e7b41c 16 name_type["status_frust"]=MESS_FRUST;
3116redtrain 0:a64827e7b41c 17 }
3116redtrain 0:a64827e7b41c 18
3116redtrain 0:a64827e7b41c 19 CushionNodeConnector::CushionNodeConnector(){
3116redtrain 1:52e1dae5dce9 20 CushionNodeConnector("please enter your default hostname");
3116redtrain 0:a64827e7b41c 21 }
3116redtrain 0:a64827e7b41c 22
3116redtrain 0:a64827e7b41c 23 bool CushionNodeConnector::connect(){
3116redtrain 0:a64827e7b41c 24 bool ret=socketio->connect();
3116redtrain 0:a64827e7b41c 25 return ret;
3116redtrain 0:a64827e7b41c 26 }
3116redtrain 0:a64827e7b41c 27
3116redtrain 0:a64827e7b41c 28 int CushionNodeConnector::mess_send(int type, char * msg){
3116redtrain 0:a64827e7b41c 29 string name=type_name[type];
3116redtrain 0:a64827e7b41c 30 char chname[16];
3116redtrain 0:a64827e7b41c 31 std::strncpy(chname, name.c_str(), 16);
3116redtrain 0:a64827e7b41c 32 int ret=socketio->emit(chname,msg);
3116redtrain 0:a64827e7b41c 33 return ret;
3116redtrain 0:a64827e7b41c 34 }
3116redtrain 0:a64827e7b41c 35
3116redtrain 0:a64827e7b41c 36 int CushionNodeConnector::mess_recv(char * msg){
3116redtrain 0:a64827e7b41c 37 picojson::value v;
3116redtrain 0:a64827e7b41c 38 char recv[256];
3116redtrain 0:a64827e7b41c 39 if (socketio->read(recv)) {
3116redtrain 0:a64827e7b41c 40 int type;
3116redtrain 0:a64827e7b41c 41 string name;
3116redtrain 0:a64827e7b41c 42 string sbuf(recv);
3116redtrain 0:a64827e7b41c 43 const char * crecv=sbuf.c_str();
3116redtrain 0:a64827e7b41c 44 string err = picojson::parse(v,crecv,crecv+strlen(crecv));
3116redtrain 0:a64827e7b41c 45 if(!err.empty())
3116redtrain 0:a64827e7b41c 46 return -1;
3116redtrain 0:a64827e7b41c 47 name=v.get("name").get<string>();
3116redtrain 0:a64827e7b41c 48 strncpy(msg,v.get("args").get<string>().c_str(),256);
3116redtrain 0:a64827e7b41c 49 type=name_type[name];
3116redtrain 0:a64827e7b41c 50 return type;
3116redtrain 0:a64827e7b41c 51 }else{
3116redtrain 0:a64827e7b41c 52 return -1;
3116redtrain 0:a64827e7b41c 53 }
3116redtrain 0:a64827e7b41c 54 }
3116redtrain 0:a64827e7b41c 55
3116redtrain 0:a64827e7b41c 56 bool CushionNodeConnector::is_connected(){
3116redtrain 0:a64827e7b41c 57 return socketio->is_connected();
3116redtrain 0:a64827e7b41c 58 }
3116redtrain 0:a64827e7b41c 59
3116redtrain 0:a64827e7b41c 60 bool CushionNodeConnector::close(){
3116redtrain 0:a64827e7b41c 61 return socketio->close();
3116redtrain 0:a64827e7b41c 62 }