Hello everyone, this is a problem ive been working on for about a week everyday now.
I am starting to go stir crazy, so please help me!
Ive been through just about every UDP example, and none seem to work, nor help me in constructing something that works!!
#include "WiFly.h"
#include "Credentials.h"
#include "SPI.h"
const int pwmA = 3;
const int pwmB = 5;
const int brakeA = 9;
const int brakeB = 8;
const int dirA = 4;
const int dirB = 2;
const int speed = 255;
WiFlyServer server(7778);
void setup() {
pinMode(dirA, OUTPUT); //Initiates Motor Channel A pin
pinMode(brakeA, OUTPUT); //Initiates Brake Channel A pin
//Setup Channel B
pinMode(dirB, OUTPUT); //Initiates Motor Channel A pin
pinMode(brakeB, OUTPUT); //Initiates Brake Channel A pin
WiFly.begin();
if (!WiFly.join(ssid, passphrase)) {
while (1) {
// Hang on failure.
}
}
Serial.begin(9600);
Serial.print("IP: ");
Serial.println(WiFly.ip());
server.begin();
}
void loop() {
WiFlyClient client = server.available();
if (client) {
while (client.connected()) {
//if (client.available()) {
char c = client.read();
Serial.print(c);
while(c == 'F'){ // forward
digitalWrite(dirA, HIGH); //Establishes forward direction of Channel A
digitalWrite(dirB, LOW); //Establishes backward direction of Channel B
digitalWrite(brakeB, LOW); //Disengage the Brake for Channel B
digitalWrite(brakeA, LOW); //Disengage the Brake for Channel A
analogWrite(pwmA, speed); //Spins the motor on channel A at full speed
analogWrite(pwmB, speed); //Spins the motor on channel A at full speed
Serial.println("Forwards");
client.read();
}
}
client.stop();
}
}
Is my code. I send commands to the IP and correct port and NOTHING happens. i have opened up the port range on both machines on my router, unblocked all firewalls and tried DMZ as well. Nothing works. I can send UDP packets to myself on my own machine fine.
If i submit 'F' nothing happens!
I have tried all coding libraries on the internet including the more complex WiFi HQ, which wont work, when when i route the Tx/Rx through to 6/7. Still wont start.
Ive tried a new library WiFlyserial and its poorly written and doesnt work.
Apparently its set up to recieve UDP commands anyway, so i shouldnt need the advanced libraries.
Ive tried parsing commands through using $$$, but it says 'BAD CONFIG' every single time. And i cant seem to automate these configs using code, everytime i write it using serial.print, it just prints it and doesnt enter cmd mode. I thought setting 'set ip proto 1' would help since thats setting it to UDP. Do i need to do something similar in the code below? I cant enter commands without having the following code;
while(SpiSerial.available() > 0) {
Serial.write(SpiSerial.read());
}
if(Serial.available()) { // Outgoing data
SpiSerial.write(Serial.read());
Can you only transmit commands when this SPI UART code is present?
Previously i had a WiFly server loading a webpage and command were recieve through localIp/?forwards etc, but this taken about 10-15 seconds to send a command, which is absolutely useless.
Please, help me out here!
thank you