Pages: [1]   Go Down
Author Topic: Transfering UDP packets, WiFly can't recieve any!!  (Read 956 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!!
Code:
#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;
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

Logged

Massachusetts, USA
Offline Offline
Tesla Member
***
Karma: 203
Posts: 8722
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I suspect that the WiFly library only handles TCP servers.

You can set the WiFly to UDP mode and set up a bi-directional UDP pipe.  You can also turn on "UDP Auto-pairing"  and it will establish a UDP pipe with the first IP address to send a UDP packet to the specified port.

Since you have to do a reset to switch to UDP mode it appears that you can't use UDP and TCP at the same time.

Download and read the Roving Networks "WiFly Command Reference, Advanced Features & Applications User’s Guide".
Logged

Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

Pages: [1]   Go Up
Jump to: