task main () { int index; // port to use for the socket int BOFHport = 6666; string dataString; // get our bluetooth name getFriendlyName(dataString); int avail = 0; StartTask(updateScreen); // initialise the port, etc RS485initLib(); N2WchillOut(); N2WsetDebug(true); N2WchillOut(); // Disconnect if already connected N2WDisconnect(); wait1Msec(100); if (!N2WCustomExist()) { StopTask(updateScreen); wait1Msec(50); eraseDisplay(); PlaySound(soundException); nxtDisplayCenteredBigTextLine(1, "ERROR"); nxtDisplayTextLine(3, "No custom profile"); nxtDisplayTextLine(4, "configured!!"); while(true) EndTimeSlice(); } N2WLoad(); wait1Msec(100); N2WConnect(true); connStatus = "connecting"; while (!N2WConnected()) wait1Msec(1000); connStatus = "connected"; PlaySound(soundBeepBeep); wait1Msec(3000); N2WgetIP(IPaddress); memcpy(dataStrings[4], IPaddress, strlen(IPaddress) + 1); wait1Msec(1000); N2WTCPClose(0); N2WchillOut(); RS485clearRead(); N2WchillOut(); // Open a listening socket on port 6666 if (!N2WTCPOpenServer(1, BOFHport)) { writeDebugStreamLine("Err open port %d", BOFHport); PlaySound(soundException); while(bSoundActive) EndTimeSlice(); StopAllTasks(); } while (true) { // Check if anyone has sent us anything avail = N2WTCPAvail(1); if (avail > 0) { rxbytes += avail; N2WchillOut(); PlaySound(soundFastUpwardTones); // Read what the client sent us sprintf(dataStrings[0], "%d bytes from", avail); N2WTCPRead(1, avail); N2WchillOut(); // Get the MAC address of the client dataStrings[2] = "Remote MAC:"; N2WTCPClientMAC(1, dataStrings[3]); writeDebugStream("MAC: "); writeDebugStreamLine(dataStrings[3]); N2WchillOut(); // check the IP address of the client N2WTCPClientIP(1, dataStrings[1]); N2WchillOut(); // Send back a hearty "Hi there, <IP>!" index = 0; returnMsg = "Hi there, "; index = RS485appendToBuff(buffer, index, returnMsg); index = RS485appendToBuff(buffer, index, dataStrings[1]); returnMsg = "\n"; index = RS485appendToBuff(buffer, index, returnMsg); txbytes += index; N2WTCPWrite(1, (tHugeByteArray)buffer, index); N2WchillOut(); // Terminate the connection to the client N2WTCPDetachClient(1); N2WchillOut(); wait1Msec(1000); } // Wait a bit wait1Msec(50); } }
task main () { int index; // port to use for the socket int BOFHport = 6666; string dataString; // get our bluetooth name getFriendlyName(dataString); int avail = 0; nNxtButtonTask = -2; StartTask(updateScreen); // initialise the port, etc RS485initLib(); memset(RS485rxbuffer, 0, sizeof(RS485rxbuffer)); memset(RS485txbuffer, 0, sizeof(RS485txbuffer)); N2WchillOut(); // Disconnect if already connected N2WDisconnect(); N2WchillOut(); // if a custom profile exists, use that instead if (N2WCustomExist()) { N2WLoad(); } else { // enable DHCP N2WsetDHCP(true); wait1Msec(100); // Disable adhoc N2WsetAdHoc(false); wait1Msec(100); // SSID to connect to N2WsetSSID("YOURWIFINETWORK"); wait1Msec(100); // The passphrase to use N2WSecurityWPA2Passphrase("YOURWIFIPASSPHRASE"); wait1Msec(100); // Save this profile to the custom profile N2WSave(); wait1Msec(100); // Load the custom profile N2WLoad(); } wait1Msec(100); N2WConnect(true); connStatus = "connecting"; while (!N2WConnected()) wait1Msec(1000); connStatus = "connected"; PlaySound(soundBeepBeep); wait1Msec(3000); N2WgetIP(IPaddress); wait1Msec(1000); // Open a listening socket on port 6666 if (!N2WTCPOpenServer(1, BOFHport)) { writeDebugStreamLine("Err open port %d", BOFHport); PlaySound(soundException); while(bSoundActive) EndTimeSlice(); StopAllTasks(); } while (true) { // Check if anyone has sent us anything avail = N2WTCPAvail(1); if (avail > 0) { rxbytes += avail; N2WchillOut(); PlaySound(soundFastUpwardTones); // Read what the client sent us sprintf(dataStrings[0], "%d bytes from", avail); N2WTCPRead(1, avail); N2WchillOut(); // Get the MAC address of the client dataStrings[2] = "Remote MAC:"; N2WTCPClientMAC(1, dataStrings[3]); writeDebugStream("MAC: "); writeDebugStreamLine(dataStrings[3]); N2WchillOut(); // check the IP address of the client N2WTCPClientIP(1, dataStrings[1]); N2WchillOut(); // Send back a hearty "Hi there, <IP>!" index = 0; returnMsg = "Hi there, "; index = RS485appendToBuff(buffer, index, returnMsg); index = RS485appendToBuff(buffer, index, dataStrings[1]); returnMsg = "\n"; index = RS485appendToBuff(buffer, index, returnMsg); txbytes += index; N2WTCPWrite(1, (tHugeByteArray)buffer, index); N2WchillOut(); // Terminate the connection to the client N2WTCPDetachClient(1); N2WchillOut(); } // Wait a bit wait1Msec(50); } }
task main () { string BOFHserver = "192.168.0.100"; // Linux VM int BOFHport = 6666; string dataString; getFriendlyName(dataString); int avail = 0; nNxtButtonTask = -2; StartTask(updateScreen); // initialise the port, etc RS485initLib(); memset(RS485rxbuffer, 0, sizeof(RS485rxbuffer)); memset(RS485txbuffer, 0, sizeof(RS485txbuffer)); // Disconnect if already connected N2WDisconnect(); N2WchillOut(); if (!N2WCustomExist()) { StopTask(updateScreen); wait1Msec(50); eraseDisplay(); PlaySound(soundException); nxtDisplayCenteredBigTextLine(1, "ERROR"); nxtDisplayTextLine(3, "No custom profile"); nxtDisplayTextLine(4, "configured!!"); while(true) EndTimeSlice(); } N2WLoad(); wait1Msec(100); N2WConnect(true); connStatus = "connecting"; while (!N2WConnected()) wait1Msec(1000); connStatus = "connected"; PlaySound(soundBeepBeep); wait1Msec(3000); N2WgetIP(IPaddress); wait1Msec(1000); while (true) { while (nNxtButtonPressed != kEnterButton) EndTimeSlice(); while (nNxtButtonPressed != kNoButton) EndTimeSlice(); if (N2WTCPOpenClient(1, BOFHserver, BOFHport)) { data[0] = 0x0A; N2WTCPWrite(1, data, 1); txbytes++; // How many bytes are available in the buffers? avail = N2WTCPAvail(1); if (avail > 0) { sizeOfReceivedData = avail; rxbytes += avail; N2WchillOut(); // read the current buffer N2WTCPRead(1, avail); processData(); for (int i = 0; i < avail; i++) { writeDebugStream("%c", RS485rxbuffer[i]); } writeDebugStreamLine(""); } // Wait a bit N2WchillOut(); // Disconnect N2WTCPClose(1); } } }