08.02.2021, 20:03
|
|
Гражданин KAZUS.RU
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
|
Здесь обсуждается C#?
Совсем загнал себя в угол
Есть на Kazus тема по C#?
Если конкретно: связать PIC с компьютером для передачи в контроллер файла, но не "скопом", а по-байтно согласно запросам PICа.
__________________
Смотрящий под ноги - звёзды видит в лужах.
|
|
|
|
08.02.2021, 20:47
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: Здесь обсуждается C#?
C++ или именно С# (Си шарп)?
Чтобы в PIC передавать файл... кхе-кхе... он же лопнет. ПИК этот.
Однако, зачем Си-шарп для этого в микроконтроллере? Компутерный файл для микроконтроллера выглядит как простой поток байтов. У файла есть заголовок с описанием формата файла, его структуры. Далее следуют собственно полезные данные. Но в целом - передача файла - это просто последовательная передача байтов, как в любом интерфейсе.
Например интерфейс USB в микроконтроллере способен принимать поток байтов по мере готовности устройства (микроконтроллера), небольшими порциями определенной длинны. Начало обмена всегда инициируется компьютером, а микроконтроллер будет выставлять состояние готовности или неготовности принять очередную порцию данных.
Для всего этого более чем достаточно обычного Си. На обычном Си анализируем начало файла (первые принятые байты), то есть, заголовок файла. Определяем тип файла, прочитав байты в заголовке, и согласно типу файла ищем в заголовке, где (через сколько байт от начала) начнется секция с полезными данными файла. Получаем байты дальше, отсчитывая указанное число байтов, и после этого начинаем прием полезной нагрузки файла.
Класс USB-устройства - Mass Storage. Файл с компьютера передается обычными средствами винды, как на любую флешку. Микроконтроллер будет принимать файл так медленно, как сможет обрабатывать микроконтроллер.
Последний раз редактировалось NewWriter; 08.02.2021 в 21:15.
|
|
|
|
08.02.2021, 21:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,653
Сказал спасибо: 117
Сказали Спасибо 815 раз(а) в 592 сообщении(ях)
|
Re: Здесь обсуждается C#?
Для такой простой задачи вообще не нужно никакой ЯП изучать. Тупо скриптик на баше накатать, да пинать /dev/ttyUSBx (/dev/ttyACMx) или /dev/ttySx (смотря как подключена железка).
Если не хочется баш использовать, можно в любимом пакете обработки данных (вы-то их где-то обрабатываете же!), например, в Octave. Тогда можно и сразу генерировать файл или обрабатывать принимаемые данные и графики рисовать...
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
08.02.2021, 21:27
|
|
Гражданин KAZUS.RU
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
|
Re: Здесь обсуждается C#?
Обратная ситуация.
Контроллер всё время требует, компьютер (СОМхх) выдаёт три байта, если совсем подробно:
хх - маска адреса
ххххххххххх - адрес (два байта)
третий - собственно данная.
Дальше - заморочка контроллера, что с ними делать и куда их девать. Справился - требует следующий.
Inc адресов контролируется на обеих, в случае ошибки (CRC и пр - не участвуют пока) "просит повторить".
Всё!
Куда, казалось бы проще.
Что есть:
список доступных портов, открытие выбранного с заданными параметрами;
двусторонний обмен;
получение пути к файлу, его открытие в переменную;
Борюсь:
отобразить красиво содержимое файла;
АА ВВ СС DD EE FF 00 11
22 33 44 55 66 77 88 99
а не навалом;
Еще не знаю как:
и сама передача по запросу или повтор по требованию.
__________________
Смотрящий под ноги - звёзды видит в лужах.
|
|
|
|
08.02.2021, 21:42
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: Здесь обсуждается C#?
Интересно, что значит "отобразить красиво содержимое файла"? Если это графический bmp-файл, то нужно прочитать заголовок файла, в заголовке найти размер и формат картинки, найти значение, указывающее на начало блока графических данных, ну и соответственно вывести эти графические данные последовательно на графический цветной дисплей. Будет и красиво, и наглядно.
В любом случае, нужно узнать, какой это файл, каков его формат. По формату файла подставить структуру заголовка файла, прочитать заголовок, определить начало полезных данных и далее действовать по обстоятельствам.
|
|
|
|
08.02.2021, 22:31
|
|
Гражданин KAZUS.RU
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
|
Re: Здесь обсуждается C#?
Сообщение от rusyvochka
|
Борюсь:
отобразить красиво содержимое файла;
АА ВВ СС DD EE FF 00 11
22 33 44 55 66 77 88 99
.
|
Ага. Я то в поисках, потому так написал.
Файл = 2048 байт, "name.hex", отобразить в НЕХ, 8-мь столбцов, по байту в столбце.
Без 0хХХ или ХХh,
просто 00 11 22 33 44 55 66 77
__________________
Смотрящий под ноги - звёзды видит в лужах.
|
|
|
|
08.02.2021, 22:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,653
Сказал спасибо: 117
Сказали Спасибо 815 раз(а) в 592 сообщении(ях)
|
Re: Здесь обсуждается C#?
rusyvochka, так что ли:
Код:
|
hexdump Armbian_20.11_Cubietruck_buster_current_5.8.16.img |head
0000000 b8fa 1000 d08e 00bc b8b0 0000 d88e c08e
0000010 befb 7c00 00bf b906 0200 a4f3 21ea 0006
0000020 be00 07be 0438 0b75 c683 8110 fefe 7507
0000030 ebf3 b416 b002 bb01 7c00 80b2 748a 8b01
0000040 024c 13cd 00ea 007c eb00 00fe 0000 0000
0000050 0000 0000 0000 0000 0000 0000 0000 0000
*
00001b0 0000 0000 0000 0000 41bd beb5 0000 0000
00001c0 4001 0383 ffe0 2000 0000 8000 0027 0000
00001d0 0000 0000 0000 0000 0000 0000 0000 0000 |
?
Дык, стандартная же утилита (и подобных - вагон)!
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
08.02.2021, 22:35
|
|
Гражданин KAZUS.RU
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
|
Re: Здесь обсуждается C#?
Хочу так:
пока имею так:
__________________
Смотрящий под ноги - звёзды видит в лужах.
|
|
|
|
08.02.2021, 22:40
|
|
Гражданин KAZUS.RU
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
|
Re: Здесь обсуждается C#?
Сообщение от eddy
|
например, в Octave.
|
Такого вообще не знаю. Под ХР - VB6 выручал. Новые времена - новые заморочки.
Это должна быть автономная оболочка, работать чуть ли не с флешки. Самостоятельный ехе. Соединение по СОМ-порту тремя проводами. UART. Всё.
__________________
Смотрящий под ноги - звёзды видит в лужах.
|
|
|
|
08.02.2021, 22:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,653
Сказал спасибо: 117
Сказали Спасибо 815 раз(а) в 592 сообщении(ях)
|
Re: Здесь обсуждается C#?
Сообщение от rusyvochka
|
Хочу так:
|
А свою же тему почитать — не вариант? Я ж hexdump предложил использовать уже.
Сообщение от rusyvochka
|
Такого вообще не знаю.
|
Дык, это ж свободное подобие матлаба!
Сообщение от rusyvochka
|
Под ХР
|
Какой XP? На дворе 2021 год... Да и вообще, прошивку для игровых приставок использовать вместо операционной системы — это нонсенс какой-то!
Сообщение от rusyvochka
|
Это должна быть автономная оболочка
|
hexdump входит в пакет util-linux, т.е. априори есть вообще на всех линуксах, даже самых минимальных!..
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:05.
|
|