Skip to content

Instantly share code, notes, and snippets.

@zsup
Created December 19, 2013 05:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zsup/8034763 to your computer and use it in GitHub Desktop.
Save zsup/8034763 to your computer and use it in GitHub Desktop.
TCPClient client;
void setup() {
Serial.begin(9600);
Spark.function("connect", connect_to_my_server);
for (int pin = D0; pin <= D7; ++pin) {
pinMode(pin, OUTPUT);
}
}
void loop() {
if (client.connected()) {
if (client.available()) {
char pin = client.read();
char level = client.read();
digitalWrite(pin - '0' + D0, 'h' == level ? HIGH : LOW);
}
}
connect_to_my_server("192.168.1.1");
delay(1000);
}
int connect_to_my_server(String ip) {
byte server_address[4];
ip_array_from_string(server_address, ip);
if (client.connect(server_address, 9000)) {
return 1; // successfully connected
} else {
return -1; // failed to connect
}
}
void ip_array_from_string(byte ip_array[], String ip_string) {
String first = ip_string.substring(0, ip_string.indexOf('.'));
String remaining1 = ip_string.substring(ip_string.indexOf('.'));
String second = remaining1.substring(0, remaining1.indexOf('.'));
String remaining2 = remaining1.substring(remaining1.indexOf('.'));
String third = remaining2.substring(0, remaining2.indexOf('.'));
String fourth = remaining2.substring(remaining2.lastIndexOf('.'));
ip_array[0] = first.toInt();
ip_array[1] = second.toInt();
ip_array[2] = third.toInt();
ip_array[3] = fourth.toInt();
for (int i=0; i<4; i++) {
Serial.println(ip_array[i]);
}
// This is how this should work, but it's not compiling. I added it to Asana.
//
// for (int i = 0; i < 4; i++) {
// ip_array[i] = ip_string.substring(1, ip_string.indexOf('.')).toInt();
// ip_string = ip_string.substring(ip_string.indexOf('.'), ip_string.length());
// }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment