void sendHeader(int cid) { ubyte linebuff[20]; int index = 0; string tmpString; linebuff[0] = 27; // escape; linebuff[1] = 'S'; // the CID; linebuff[2] = (ubyte)cid + 48; // the CID; index = appendToBuff(buffer, index, linebuff, 3); tmpString = "HTTP/1.1 200 OK"; memcpy(linebuff, tmpString, strlen(tmpString)); index = appendToBuff(buffer, index, linebuff, strlen(tmpString)); index = appendToBuff(buffer, index, linefeed, sizeof(linefeed)); tmpString = "Content-Type:"; memcpy(linebuff, tmpString, strlen(tmpString)); index = appendToBuff(buffer, index, linebuff, strlen(tmpString)); tmpString = " text/plain"; memcpy(linebuff, tmpString, strlen(tmpString)); index = appendToBuff(buffer, index, linebuff, strlen(tmpString)); index = appendToBuff(buffer, index, linefeed, sizeof(newline)); index = appendToBuff(buffer, index, linefeed, sizeof(newline)); linebuff[0] = 27; // escape; linebuff[1] = 'E'; // the CID; index = appendToBuff(buffer, index, endmarker, 2); writeRawHS(buffer, index); }
void genResponse(int cid) { int power = motor[motorA]; string tmpString; int index = 0; ubyte linebuff[20]; StringFromChars(tmpString,rxbuffer); index = StringFind(tmpString, "/"); StringDelete(tmpString, 0, index); index = StringFind(tmpString, "HTTP"); StringDelete(tmpString, index, strlen(tmpString)); writeDebugStreamLine("Request:%s", tmpString); nxtDisplayTextLine(2, "Request: "); nxtDisplayTextLine(3, tmpString); if (StringFind(tmpString, "MOTA") > 0) { StringDelete(tmpString, 0, 6); index = StringFind(tmpString, " "); if (index > -1) StringDelete(tmpString, index, strlen(tmpString)); //power = RC_atoix(tmpString); power = clip(RC_atoix(tmpString), -100, 100); writeDebugStreamLine("Power:%d", power); } else { writeDebugStreamLine("NO POWER: %s", tmpString); } sendHeader(cid); while(nxtHS_Status == HS_SENDING) wait1Msec(5); wait1Msec(100); index = 0; linebuff[0] = 27; // escape; linebuff[1] = 'S'; // the CID; linebuff[2] = (ubyte)cid + 48; // the CID; index = appendToBuff(buffer, index, linebuff, 3); StringFormat(tmpString, "MotorA=%d", power); memcpy(linebuff, tmpString, strlen(tmpString)); index = appendToBuff(buffer, index, linebuff, strlen(tmpString)); linebuff[0] = 27; // escape; linebuff[1] = 'E'; // the CID; index = appendToBuff(buffer, index, endmarker, 2); writeRawHS(buffer, index); motor[motorA] = power; closeConn(1); memset(rxbuffer, 0, sizeof(rxbuffer)); wait1Msec(100); clear_read_buffer(); }
void genResponse(int cid) { int power = motor[motorA]; float temp = 0.0; string tmpString; int index = 0; ubyte linebuff[20]; StringFromChars(tmpString,rxbuffer); index = StringFind(tmpString, "/"); StringDelete(tmpString, 0, index); index = StringFind(tmpString, "HTTP"); StringDelete(tmpString, index, strlen(tmpString)); writeDebugStreamLine("Request:%s", tmpString); nxtDisplayTextLine(2, "Request: "); nxtDisplayTextLine(3, tmpString); if (StringFind(tmpString, "MOTA") > 0) { StringDelete(tmpString, 0, 6); index = StringFind(tmpString, " "); if (index > -1) StringDelete(tmpString, index, strlen(tmpString)); //power = RC_atoix(tmpString); power = clip(atoi(tmpString), -100, 100); writeDebugStreamLine("Power:%d", power); } else { writeDebugStreamLine("NO POWER: %s", tmpString); } sendHeader(cid); while(nxtHS_Status == HS_SENDING) wait1Msec(5); wait1Msec(100); index = 0; linebuff[0] = 27; // escape; linebuff[1] = 'S'; // the CID; linebuff[2] = (ubyte)cid + 48; // the CID; index = appendToBuff(buffer, index, linebuff, 3); StringFormat(tmpString, "MotorA=%d\n", power); memcpy(linebuff, tmpString, strlen(tmpString)); index = appendToBuff(buffer, index, linebuff, strlen(tmpString)); DTMPreadTemp(DTMP, temp); StringFormat(tmpString, "Temp: %2.2f C", temp); memcpy(linebuff, tmpString, strlen(tmpString)); index = appendToBuff(buffer, index, linebuff, strlen(tmpString)); linebuff[0] = 27; // escape; linebuff[1] = 'E'; // the CID; index = appendToBuff(buffer, index, endmarker, 2); writeRawHS(buffer, index); if (power != 0) nMotorEncoderTarget[motorA] = 2000; motor[motorA] = power; if (power > 0) SensorType[COLOUR] = sensorCOLORGREEN; else if (power < 0) SensorType[COLOUR] = sensorCOLORBLUE; else if (nMotorRunState[motorA] == runStateIdle) SensorType[COLOUR] = sensorCOLORRED; else SensorType[COLOUR] = sensorCOLORRED; wait1Msec(300); clear_read_buffer(); closeConn(1); memset(rxbuffer, 0, sizeof(rxbuffer)); //wait1Msec(100); Receive(); //clear_read_buffer(); }