Мне нужно отправлять/получать файлы из/в SerialPort и MSP430F5438A , нажав кнопку обзора в интерфейсе С#, выбрав файл (например, текст, блокнот и т. д.), а в случае получения сохранить файл, который был отправлен из CCS на ПК!
Я действительно не мог найти ничего похожего в Google или где-то еще. Хоть кто-нибудь может сориентировать меня?
Я бы прочитал файл в какой-то буфер вашего пользовательского интерфейса, разбил его на небольшие пакеты и отправил.
Например, в моем пользовательском интерфейсе я разрешаю пользователю загружать новый образ прошивки на мое устройство. Поэтому я отправляю этот файл прошивки по UART по одной строке за раз. Мой MSP430 считывает эту строку в буфер длиной X символов, проверяет ее, сохраняет во внешней флэш-памяти и затем получает следующую строку. Получив все данные, MSP430 переходит к своему коду загрузчика.
Вам просто нужно решить, как вы собираетесь разбивать данные на части, и соответственно размер буферов.
Мне не нужно определять какой-либо специальный последовательный протокол, потому что мои файлы уже отформатированы определенным образом, и я могу отправлять файл по одной строке за раз и анализировать его на другом конце. http://en.wikipedia.org/wiki/SREC_(формат_файла)
Но для общего приложения, возможно, вам следует определить легкий протокол. Например, каждая строка будет начинаться с определенного символа, порядкового номера, длины полезной нагрузки и, возможно, конечного байта. Что-то в этом роде:
| 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 |
Затем вы можете отказаться от всего файла, если один фрагмент отсутствует. Вы также можете включить базовую контрольную сумму, чтобы убедиться, что линия не была повреждена, когда она была в сети.
Парсер для такого рода вещей будет относительно простым для записи с обеих сторон.
РЕДАКТИРОВАТЬ: В целях тестирования я рекомендую использовать realterm. Это гибкая двоичная терминальная программа, которая позволит вам отправлять произвольные данные, файлы и т. д. Вы также можете использовать ее для мониторинга последовательных портов.
Маженко
Ренья Карасума
Маженко
Ренья Карасума
Маженко
Ренья Карасума
Маженко
Крис Стрэттон