Ich muss Dateien von/zu SerialPort und MSP430F5438A senden/empfangen, indem ich auf eine Schaltfläche zum Durchsuchen in der C#-Oberfläche klicke, eine Datei (wie Text, Notizblock usw.) auswähle und im Fall des Empfangs die Datei, die gesendet wurde, speichern soll CCS auf PC!
Bei Google oder anderswo konnte ich wirklich nichts passendes finden. Kann mich jemand wenigstens orientieren?
Ich würde die Datei in eine Art Puffer auf Ihrer Benutzeroberfläche einlesen, in kleine Pakete zerlegen und senden.
Beispielsweise erlaube ich dem Benutzer auf meiner Benutzeroberfläche, ein neues Firmware-Image auf mein Gerät hochzuladen. Also sende ich diese Firmware-Datei zeilenweise über den UART. Mein MSP430 liest diese Zeile in einen Puffer, der X Zeichen lang ist, validiert sie, speichert sie an einem Ort auf einem externen Flash-Speicher und empfängt dann die nächste Zeile. Sobald er alle Daten erhalten hat, verzweigt der MSP430 in seinen Bootloader-Code.
Sie müssen nur entscheiden, wie Sie die Daten aufteilen und Ihre Puffer entsprechend dimensionieren.
Ich muss kein spezielles serielles Protokoll definieren, da meine Dateien bereits auf eine bestimmte Weise formatiert sind und ich die Datei Zeile für Zeile senden und am anderen Ende analysieren kann. http://en.wikipedia.org/wiki/SREC_(Dateiformat)
Aber für eine generische Anwendung sollten Sie vielleicht ein leichtes Protokoll definieren. Jede Zeile beginnt mit einem bestimmten Zeichen, einer Sequenznummer, einer Nutzdatenlänge und möglicherweise einem Endbyte. Etwas in diese Richtung:
| Byte 0 | Byte 1 | Byte 2 | Byte 3 | Bytes 4 to (p+4) | Byte 5+p |
|----------------------|-----------------|-------------------------------------|----------------|------------------|--------------------|
| Arbitrary Start Byte | Sequence | Total number of packets - up to 255 | Payload Length | The data | Arbitrary End Byte |
| 0x0A | Number x | Of X | p < 256 | | 0xFF |
Dann können Sie die gesamte Datei verwerfen, wenn ein Chunk fehlt. Sie könnten auch eine einfache Prüfsumme einfügen, um sicherzustellen, dass die Leitung nicht beschädigt wurde, als sie auf dem Draht war.
Der Parser für diese Art von Dingen wäre relativ einfach auf beiden Seiten zu schreiben.
BEARBEITEN: Zu Testzwecken empfehle ich die Verwendung von realterm. Es ist ein flexibles binäres Terminalprogramm, mit dem Sie beliebige Daten, Dateien usw. senden können. Sie können es auch verwenden, um serielle Ports zu überwachen.
Majenko
Renya Karasuma
Majenko
Renya Karasuma
Majenko
Renya Karasuma
Majenko
Chris Stratton