Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 1:e6addce35f93, committed 2016-12-17
- Comitter:
- 3116redtrain
- Date:
- Sat Dec 17 11:03:10 2016 +0000
- Parent:
- 0:01a2e92d2924
- Commit message:
- first comp;
Changed in this revision
| CushionSock.cpp | Show annotated file Show diff for this revision Revisions of this file |
| CushionSock.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/CushionSock.cpp Sat Dec 17 09:13:37 2016 +0000
+++ b/CushionSock.cpp Sat Dec 17 11:03:10 2016 +0000
@@ -1,6 +1,23 @@
#include "CushionSock.h"
+#define STOP 0x01
+#define START 0x02
+#define SIT 0x11
+#define FRUST 0x12
+#define TEST 0x21
+#define TWEET 0x13
-CushionSock::CushionSock(char * hostAndPort){
+CushionSock::CushionSock(){
+ printf("begin\r\n");
+
+ MESS_STOP = 0x01;
+ MESS_START = 0x02;
+ MESS_SIT = 0x11;
+ MESS_FRUST = 0x12;
+ MESS_TEST =0x21;
+ MESS_TWEET = 0x13;
+}
+
+void CushionSock::init(char * hostAndPort){
eth = new EthernetNetIf();
EthernetErr ethErr = eth->setup();
if (ethErr) {
@@ -9,68 +26,64 @@
printf("hostandport %s\n", hostAndPort);
ws = new Websocket(hostAndPort, eth);
-
- printf("begin\r\n");
-
- MESS_STOP = 0x01;
- MESS_START = 0x02;
- MESS_SIT = 0x11;
- MESS_FRUST = 0x12;
- MESS_TEST =0x21;
- type_name[MESS_STOP]="stop";
- type_name[MESS_START]="start";
- type_name[MESS_SIT]="status_sit";
- type_name[MESS_FRUST]="status_frust";
- type_name[MESS_TEST]="test";
- name_type["stop"]=MESS_STOP;
- name_type["start"]=MESS_START;
- name_type["status_sit"]=MESS_SIT;
- name_type["status_frust"]=MESS_FRUST;
- name_type["test"]=MESS_TEST;
+ printf("websock init\n");
+}
- printf("websock init\n");
- int failcount=0;
-
- while(! ws->connect()) {
+bool CushionSock::connect(){
+ printf("connecting...");
+ int failcount=0;
+
+ while(! ws->connect()) {
failcount++;
if(failcount>10){
printf("cannot connect failed.\n");
- break;
+ return false;
}
printf("cannot connect websocket, retrying...\n");
wait(2);
}
-}
-
-
-bool CushionSock::connect(){
-
return true;
}
int CushionSock::mess_send(int type, char * msg){
- string name=type_name[type];
+ string name;
+ switch(type){
+ case TEST:
+ name="test";
+ break;
+ case STOP:
+ name="stop";
+ break;
+ case START:
+ name="start";
+ break;
+ case SIT:
+ name="status_sit";
+ break;
+ case FRUST:
+ name="status_frust";
+ break;
+ case TWEET:
+ name="status_tweet";
+ default:
+ name="null";
+ }
MbedJSONValue json;
json["name"]=name.c_str();
json["value"]=msg;
ws->send((char*)json.serialize().c_str());
+ printf("data send\n");
return 1;
}
int CushionSock::mess_recv(char * msg){
- picojson::value v;
- char recv[256];
- if (ws->read(recv)) {
- int type;
- string name;
- string sbuf(recv);
- const char * crecv=sbuf.c_str();
- string err = picojson::parse(v,crecv,crecv+strlen(crecv));
- if(!err.empty())
- return -1;
- name=v.get("name").get<string>();
- strncpy(msg,v.get("value").get<string>().c_str(),256);
- type=name_type[name];
+ if (ws->read(msg)) {
+ int type=0;
+ printf("recieved msg : %s \n",msg);
+ if(strcmp(msg,"start")==0)
+ type=MESS_START;
+ if(strcmp(msg,"stop")==0)
+ type=MESS_STOP;
return type;
}else{
return -1;
--- a/CushionSock.h Sat Dec 17 09:13:37 2016 +0000
+++ b/CushionSock.h Sat Dec 17 11:03:10 2016 +0000
@@ -4,7 +4,6 @@
#include "mbed.h"
#include "Websocket.h"
#include "EthernetNetIf.h"
-#include "picojson.h"
#include "MbedJSONValue.h"
@@ -16,13 +15,15 @@
int MESS_SIT;
int MESS_FRUST;
int MESS_TEST;
+ int MESS_TWEET;
/*
Constructor
@param hostAndport format : "hostname:port"
*/
- CushionSock(char * hostAndPort);
+ CushionSock();
+ void init(char * hostAndPort);
/*
connect to server
@return true if the connection is established, false otherwise
@@ -55,8 +56,5 @@
private:
EthernetNetIf *eth;
Websocket *ws;
-
- std::map<int,string> type_name;
- std::map<string,int> name_type;
};
#endif
\ No newline at end of file