int other_translate (const char *trantab, const widechar * inbuf, int *inlen, widechar * outbuf, int *outlen, char *typeform, char *spacing, int *outputPos, int *inputPos, int *cursorPos, int mode) { char transSpec[MAXSTRING]; char *afterColon; int action; strcpy (transSpec, trantab); afterColon = findColon (transSpec); action = findAction (translators, transSpec); switch (action) { case -1: lou_logPrint ("There is no translator called '%s'", transSpec); return 0; case 1: return 1; case 2: return 1; case 3: return 1; default: return 0; } return 0; }
void SocketIOClient::monitor() { *databuffer = 0; if (!client.connected()) { if (!client.connect(hostname, port)) return; } if (!client.available()) return; char which; while (client.available()) { readLine(); dataptr = databuffer; switch (databuffer[0]) { case '1': // connect: [] which = 6; break; case '2': // heartbeat: [2::] client.print((char)0); client.print("2::"); client.print((char)255); continue; case '5': // event: [5:::{"name":"ls"}] which = 4; break; default: Serial.print("Drop "); Serial.println(dataptr); continue; } findColon(which); dataptr += 2; // handle backslash-delimited escapes char *optr = databuffer; while (*dataptr && (*dataptr != '"')) { if (*dataptr == '\\') { ++dataptr; // todo: this just handles "; handle \r, \n, \t, \xdd } *optr++ = *dataptr++; } *optr = 0; Serial.print("["); Serial.print(databuffer); Serial.print("]"); if (dataArrivedDelegate != NULL) { dataArrivedDelegate(*this, databuffer); } } }
void SocketIOClient::monitor() { *databuffer = 0; if (!client.connected()) { Serial.println("Connecting..."); if (!connect(ID, hostname, port)){ Serial.println("Connection Failed."); delay(1000); return; } } if (!client.available()) return; char which; while (client.available()) { readmsg(); dataptr = databuffer; switch (databuffer[0]) { case '1': // connect: [] which = 6; break; case '2': // heartbeat: [2::] client.print((char)0); client.print("2::"); client.print((char)255); continue; case '5': // event: [5:::{"name":"ls"}] which = 3; break; default: if (debug) { Serial.print("Drop "); Serial.println(dataptr); } continue; } findColon(which); dataptr += 1; // handle backslash-delimited escapes char *optr = databuffer; /* while (*dataptr && (*dataptr != '"')) { if (*dataptr == '\\') { ++dataptr; // todo: this just handles "; handle \r, \n, \t, \xdd } *optr++ = *dataptr++; }*/ while (*dataptr) { if (*dataptr == '\\') { // Do not remove escapes for json parsing //Serial.println("\\"); //++dataptr; // todo: this just handles "; handle \r, \n, \t, \xdd } *optr++ = *dataptr++; } *optr = 0; if (debug) { Serial.print("["); Serial.print(databuffer); Serial.println("]"); } parseJsonData(databuffer); } }