Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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);
	}
}