Show Posts
Pages: 1 ... 5 6 [7] 8 9 ... 24
91  International / Deutsch / Re: text in Char Array finden on: April 04, 2013, 01:28:09 pm
Hi,

ok. Also mal mit meinen eigenen Worten zusammengefasst, was ich da rausgelesen habe: (Verbessert mich, wenn es nicht stimmt)

Es gibt zwei verschiedene Arten von Strings.
A.)
String-Objekte, die es zu vermeiden gilt, und die ich verwendet habe, um mit "string.indexOf" eine Zeichenkette zu erkennen.
B.)
CharArrays, auch C-Strings genannt. Dafür ist der angesprochenen strstr-Befehl gedacht.
Muss ich mir mal genauer ansehen.

Quote
Denk dir doch ein einfacheres Protokoll aus. ( 1 Buchstaben-Befehle können direkt in switch cases verarbeitet werden )
Ja, du hast recht. Damit wär es relativ einfach.
Aber ich habe folgendes vor:
Ich möchte über Ethernet das Eeprom dynamisch auslesen. Also die Anfangs- und auch die Endadresse des auszulesenden Bereiches mit übergeben.
Dafür dachte ich, dass ich einen Befehl und dann, durch Leerzeichen (vllt. auch durch Komma o.ä.) getrennt, zwei Zahlen mitgebe.
Also etwa so: "ReadEeprom 0 1024"
92  International / Deutsch / text in Char Array finden on: April 03, 2013, 04:27:03 pm
Hi,

jetzt bräuchte ich wieder mal die Hilfe von euch C-Experten.

Ich sende über UDP verschiedene "Botschaften" an den Arduino.
Die Botschaften möchte ich nach einer bestimmten Zeichenfolge durchsuchen, und dann abhängig vom Inhalt unterschiedliche Aktionen ausführen.

Ich als C-Laie kenne jetzt nur die Möglichkeit das CharArray in einen String zu wandeln und den dann zu durchsuchen:
Code:

String str1;
  int packetSize = Udp.parsePacket();
  if(packetSize)
  {
    Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
    str1 = String(packetBuffer);
    
       if(str1.indexOf("Befehl") > -1) {
       .
       .
       }
 

Kann man das auch ohne die Wandlung in einen String machen?

Mein Endziel allerdings wäre es folgendes zu senden: "Befehl x y" wobei x und y Zahlen sein sollen.
Im Arduino sollten dann die beiden Zahlen im Integerformat als Parameter zum Befehl übergeben werden.
93  International / Deutsch / Re: Programmieren über USB-Extender on: April 03, 2013, 01:44:15 pm
Yep, momentan zum Testen schon.

Ich weiss worauf du hinaus willst.....
94  International / Deutsch / Re: Programmieren über USB-Extender on: April 03, 2013, 01:07:20 pm
Quote
War mir nicht klar. Hätte ich das verstehen können?
OK, ok.... hätt ich besser beschreiben können. smiley-cool

Quote
Hast Du ein gekreuztes Kabel erwischt wo es ein nicht gekreuztes braucht oder umgekehrt?
Miß mal die beiden Netzkabel durch ob sie gleich verbunden sind.
Sind beides normale Patchkabel. Und auch beide i.O. Habs vorher mit dem Netzwerk-Kabeltester durchgemessen.

Hab auch noch so ein flaches 20m Ethernetkabel gefunden. Damit fährt der Arduino nicht mal mehr hoch.
Bei dem 20m Cat6-Patchkabel gingen wenigstens noch die LEDs an, aber an einen Download war nicht zu denken.

Sieht doch so aus, als ob es an der Länge liegt.
95  International / Deutsch / Re: Programmieren über USB-Extender on: April 03, 2013, 12:41:32 pm
Quote
USB kann verlängert werden indem es zb auf Netztwerk bzW Netzwerkkabeln übertragen wird, Dazu brauchst Du aber 2 Umsetzer.

Davon rede ich ja  ;-)
96  International / Deutsch / Programmieren über USB-Extender on: April 03, 2013, 11:45:05 am
Hi,

hat schon jemand Erfahrungen mit dem Programmieren von Arduinos über USB-Extender?

Ich hab mir mal einen zugelegt. Mit einem kurzen Kabel (1m) funktioniert es ja noch prima.
Dann hätte ich ein "gutes" Kabel mit 20m probiert. Aber da funktioniert es nicht mehr.
Zwischenlängen hab ich momentan nicht da.
97  International / Deutsch / Re: debug für serial.print(ln) on: April 01, 2013, 08:48:28 am
oh oh....Blasphemie  smiley-zipper

Aber ich glaube Uwe hat kein Problem damit. smiley

Heißt also, ich könnte das so machen wie gezeigt??
98  International / Deutsch / Re: debug für serial.print(ln) on: April 01, 2013, 07:15:40 am
"DEBUG_PRINTLN("Server started");" ist da eine andere Suchstring der von "DEBUG_PRINTLN(x)" verschieden ist und darum nicht gefinden wird.
Probier es mal. Du wirst schon sehen ob es funktioniert oder nicht.

Grad probiert:

Code:
// #define DEBUG //"Schalter" zum aktivieren

#ifdef DEBUG
#define DEBUG_PRINT(x) Serial.print(x)
#define DEBUG_PRINTLN(x) Serial.println(x)
#else
#define DEBUG_PRINT(x)
#define DEBUG_PRINTLN(x)
#endif
void setup()
{
   // start the serial for debugging
   Serial.begin(115200);
   // start the Ethernet connection and the server:
   Ethernet.begin(mac, serverIP);
   server.begin();
   DEBUG_PRINTLN("Server started");
   delay(500);

}
...
Das ergibt keine Ausgabe auf der Konsole.

Und das hier:
Code:
#define DEBUG //"Schalter" zum aktivieren

#ifdef DEBUG
#define DEBUG_PRINT(x) Serial.print(x)
#define DEBUG_PRINTLN(x) Serial.println(x)
#else
#define DEBUG_PRINT(x)
#define DEBUG_PRINTLN(x)
#endif
void setup()
{
   // start the serial for debugging
   Serial.begin(115200);
   // start the Ethernet connection and the server:
   Ethernet.begin(mac, serverIP);
   server.begin();
   DEBUG_PRINTLN("Server started");
   delay(500);

}
...

ergibt:
Code:
Server started
auf der Konsole

Das ist jetzt wohl wieder mal "Theorie und Praxis"  smiley-razz
99  International / Deutsch / Re: debug für serial.print(ln) on: April 01, 2013, 06:04:14 am
Hi Uwe,

ja da ist ein Tipfehler. Sorry.
Sollte so heissen:
Code:
#define DEBUG //"Schalter" zum aktivieren

#ifdef DEBUG
#define DEBUG_PRINT(x) Serial.print(x)
#define DEBUG_PRINTLN(x) Serial.println(x)
#else
#define DEBUG_PRINT(x)
#define DEBUG_PRINTLN(x)
#endif

Quote
Das funktioniert nur wenn die Variable zum Ausgeben immer "x" ist.
??? Also ich kann damit auch z.B Text ausgeben:
Code:
DEBUG_PRINTLN("Server started");

Mir gefällt halt daran, daß ich im Sketch nicht für jede Debugausgabe 3 Zeilen habe.
100  International / Deutsch / debug für serial.print(ln) on: April 01, 2013, 05:32:51 am
Hi, suche gerade nach einer Möglichkeit meine Konsolenausgaben für "Debugmodus" ein- bzw. auszuschalten.

hab dazu im Internet folgendes gefunden:

Code:
#define DEBUG //"Schalter" zum aktivieren

#ifdef DEBUG
#define DEBUG_PRINT(x) Serial.print(x)
#define DEBUG_PRINT(x) Serial.println(x)
#else
#define DEBUG_PRINT(x)
#define DEBUG_PRINTLN(x)
#endif

Ist so was gängig, oder habt ihr bessere Ideen?

Sonst hab ich mich immer so abgequält:
Code:
if (debug==1) {
   serial.println("blablabla");
}

Aber das ist immer viel Müll im Code.

gruß/hk007
101  International / Deutsch / Re: Auf SD-Karte zellenbezogen wie in EEprom schreiben on: April 01, 2013, 05:08:25 am
Du weißt schon, daß das ein Wiederspruch ist.

Ja. Auch wenn heute 1. April ist....LOL
Hintergrund. Ich habe eine Applikation, die mir bereits Daten über SDfat auf eine SD-Karte schreibt.
Nun hätte ich gerne eine Datei, in der ich gezielt Bytes ablegen kann, und dann auch wieder gezielt lesen kann.

Also etwa so:
open Datei
schreibe Wert1, Offset 1
schreibe Wert2, Offset 2
usw.
Und beim Lesen weiss ich dann, dass ich an Offset 2 lesen muss, wenn ich Wert2 wieder haben will.

Also genauso wie beim EEprom. Aber ohne auf die Schreib-Lesezyklen achten zu müssen.

gruß/hk007
102  International / Deutsch / Auf SD-Karte zellenbezogen wie in EEprom schreiben on: April 01, 2013, 02:16:57 am
Hi,

gibt es eine Möglichkeit, auf eine SD-Karte wie auf ein EEprom zu schreiben.
Also nicht sektorbezogen, sondern schon mit FAT.
Ich stelle mir vor eine Datei mit z.B. 4096 Byte zu erstellen, und dann in diese Datei direkt einen Hex-Wert an eine bestimmte Stelle schreiben.

Gruß/hk007
103  International / Deutsch / Re: Einige Fragen zur Nutzung von EEproms on: March 30, 2013, 08:33:08 am
@jurs:
Danke, probier ich mal aus :-)

@Reinhard:
Der Floatwert kommt über die serielle Schnittstelle als 4 Byte Hex-Zahl.
Gute Idee, aber da ist nix gewonnen  smiley-razz

104  International / Deutsch / Re: Einige Fragen zur Nutzung von EEproms on: March 30, 2013, 06:15:22 am
- In Byte zerlegen.

Da fragt sich jetzt der C-Anfänger, wie man das am besten macht.
[Bettelmodus]
Gibts da irgendwo ein Code-Schnipsel ???
[/Bettelmodus]
105  International / Deutsch / Einige Fragen zur Nutzung von EEproms on: March 30, 2013, 04:44:58 am
Hi,
bis jetzt hab ich noch nie das Eeprom benötigt.

Jetzt hab ich vor, meinen Mega damit zu nutzen. Ziel ist es jeden Tag einmal einen Float-Wert in das Eeprom zu schreiben.
(Dann reicht mir das EEprom ja rein rechnerisch 273 Jahre, wenn man die max. Schreibzyklen beachtet smiley .)
Die interne Bibliothek kann ja nur Bytes schreiben. Ich hab jetzt im Internet die Extended EEprom-Bibliothek gefunden.
Da hätte ich jetzt 3 Fragen:
- Würdet Ihr euren Float in Byte zerlegen, und die Standard Bibliothek benutzen, oder die Extended verwenden?
- Wenn ich das richtig sehe, bin ich selber für die Verwaltung der EEprom Speicherzellen verantwortlich, oder?
- Stehen mir die kompletten 4k zur Verfügung, oder nutzt der Bootloader o.ä, schon irgendwelche Speicherbereiche?

Danke vorab für eure Antworten.
Gruß/hk007
 
Pages: 1 ... 5 6 [7] 8 9 ... 24