- Labornetzteil AliExpress         
Ergebnis 1 bis 9 von 9

Thema: RP6 M256 Datenaustausch Problem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier Avatar von Patti
    Registriert seit
    29.08.2011
    Ort
    NRW
    Alter
    28
    Beiträge
    13

    Frage RP6 M256 Datenaustausch Problem

    Hallo ,

    Ich möchte ein Programm für das Wlanboard schreiben mit dem ich über das WIFI-Terminal einen Befehl schreiben kann und der RP6 dann etwas macht.
    z.B wenn ich eine Taste auf dem PC drücke soll er über WLAN dem RP6 einen Befehl geben und dieser soll dann z.B eine Status-LED an machen.

    Ich habe mir schon die Beispielprogramme RP6M256_11_WIFI_REMOTE_1 und RP6M256_11_WIFI_REMOTE_2 angeguckt aber ich verstehe nicht wie dort auf die eingabe der Tastertur reagiert wird.
    Ich würde micht um Hilfe sehr freuen.

    MFG Patrick

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hallo Patrick,

    ich habe mal ein kleines Programm angehängt, was NUR die Texteingabe im WIFI-Terminal und die Ausgabe auf dem LCD zeigt.
    Code:
    /* 
     * ****************************************************************************
     * RP6 ROBOT SYSTEM - RP6 CONTROL M256 Examples
     * ****************************************************************************
     * Example: WIFI Input Example
     * Author(s): Dirk
     * ****************************************************************************
     * Description:
     * With this program you may test the text input function of the RobotLoader
     * WIFI terminal. If you enter a test string (max. 16 characters), this string
     * is displayed on line 1 of the LCD.
     * There is a bug in RobotLoader 2.3c: If you enter upper case letters in the
     * WIFI terminal, they are received via WIFI as lower case letters!
     *
     * ############################################################################
     * The Robot does NOT move in this example! You can simply put it on a table
     * next to your PC and you should connect it to the PC via the USB Interface!
     * You should also connect to it via WIFI.
     * ############################################################################
     * ****************************************************************************
     */
    /*****************************************************************************/
    // Includes:
    #include "RP6M256Lib.h"      // The RP6 M256 Library. 
               // Always needs to be included!
    /*****************************************************************************/
    // Variables:
    // Reception buffer for the function getInputLine_WIFI():
    char receiveBufferWifi[UART_RECEIVE_BUFFER_SIZE_WIFI + 1];
    /*****************************************************************************/
    // WIFI receive functions:
    /**
     * Get chars of an input line from the WIFI.
     *
     * Returns 0 (false), if the WIFI receive buffer is empty
     * OR a character of the input line has been received.
     * Returns 1, if the whole input line has been received
     * (with a "new line" character at the end).
     * Returns 2, if the WIFI receive buffer overflows.
     * The input line is stored in the receiveBufferWifi array.
     *
     */
    uint8_t getInputLine_WIFI(void)
    {static uint16_t buffer_pos = 0;
     if(getBufferLength_WIFI()) {       
      receiveBufferWifi[buffer_pos] = readChar_WIFI();
      if((receiveBufferWifi[buffer_pos] == '\n')
       || (receiveBufferWifi[buffer_pos] == '\r')) {
       receiveBufferWifi[buffer_pos] = '\0';
       buffer_pos = 0;
       return 1;
      }
      else if(buffer_pos >= UART_RECEIVE_BUFFER_SIZE_WIFI) {         
       receiveBufferWifi[UART_RECEIVE_BUFFER_SIZE_WIFI] = '\0'; 
       buffer_pos = 0;
       return 2;
      }
      buffer_pos++;
     }
     return 0;
    }
    /**
     * Get a complete input line from the WIFI.
     *
     * This function waits for a whole input line from the WIFI.
     * The input line is stored in the receiveBufferWifi array.
     * The function is blocking until one of the two following
     * conditions occurs:
     * - A "new line" character has been received at the end of
     *   the input line.
     * - The WIFI receive buffer overflows.
     *
     */
    void enterString_WIFI(void)
    {
     while(!getInputLine_WIFI());
    }
    /*****************************************************************************/
    // Main function - The program starts here:
    int main(void)
    {
     initRP6M256();    // Always call this first! The Processor will not work
           // correctly otherwise. 
     initLCD(); // Initialize the LC-Display (LCD)
          // Always call this before using the LCD!
     setLEDs(0b0000);
     
     clearLCD(); // Clear the whole LCD Screen
    /*****************************************************************************/
    // Main test program:
     while(true)
     {
      writeString_P_WIFI("\n\n");
      writeString_P_WIFI("\n|============================|");
      writeString_P_WIFI("\n| WIFI: Input a test string  |");
      writeString_P_WIFI("\n|       (max. 16 characters) |\n");
      enterString_WIFI();
      // Show the test string on line 1 of the LCD:
      clearLCD();
      writeStringLCD(receiveBufferWifi);
      mSleep(10000);
      writeString_P_WIFI("\n\n");
     }
    /*****************************************************************************/
    // End of main:
     return 0;
    }
    Jetzt klarer?
    Gruß
    Dirk

  3. #3
    Neuer Benutzer Öfters hier Avatar von Patti
    Registriert seit
    29.08.2011
    Ort
    NRW
    Alter
    28
    Beiträge
    13
    Hallo Dirk,

    Prima danke das Programm hat mit weiter geholfen jetzt hab ich es verstanden

    Danke

    MFG Patrick

  4. #4
    Neuer Benutzer Öfters hier Avatar von Patti
    Registriert seit
    29.08.2011
    Ort
    NRW
    Alter
    28
    Beiträge
    13
    Hallo,

    Jetzt hab ich noch eine Frage,
    Ich möchte über das WIFI-Board den PORTA |= E_INT1 auf high setzen.
    Wie kann ich das machen ?

    MFG Patrick

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    E_INT1 auf der RP6Base ist der Portpin PA4.
    Der ist über den XBUS mit PJ3 (Bezeichnung: INT1_PI12) der M256 verbunden.

    Wenn du diesen Portpin auf der M256 ein-/ausschaltest, kannst du das auf der Base an PA4 "empfangen".
    Gruß
    Dirk

  6. #6
    Neuer Benutzer Öfters hier Avatar von Patti
    Registriert seit
    29.08.2011
    Ort
    NRW
    Alter
    28
    Beiträge
    13
    Hallo Dirk,

    Danke für die Antwort ich habe versucht den Port so anzusteuern,
    if((receiveBufferWifi[buffer_pos] == 'i'))
    {
    setLEDs(0b1111);
    PORTJ |= INT1_PI12;

    }
    aber es funktioniert nicht. Es gehen nur die LEDs auf dem WIFI-board an.
    Was könnte ich falsch gemacht haben ?

    MFG Patrick

Ähnliche Themen

  1. Diskussion zum RP6 M256 WIFI Modul
    Von SlyD im Forum Robby RP6
    Antworten: 181
    Letzter Beitrag: 15.10.2012, 19:45
  2. RP6 M256 WIFI: DCF77 Library
    Von Dirk im Forum Robby RP6
    Antworten: 1
    Letzter Beitrag: 11.08.2012, 10:21
  3. RP6 M256 WIFI: Clock Library
    Von Dirk im Forum Robby RP6
    Antworten: 0
    Letzter Beitrag: 31.07.2012, 21:55
  4. Antworten: 3
    Letzter Beitrag: 28.07.2012, 18:43
  5. [ERLEDIGT] Kostenlose RP6 M256 WIFI Module für Testanwender!
    Von SlyD im Forum Robby RP6
    Antworten: 10
    Letzter Beitrag: 02.07.2012, 15:24

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test