Size: a a a

2020 December 10

DD

Denis Davydov in Deus Volt!
Всем здравствуй. Как вы читаете бинарные файлы, именно .bin, .rom .hex файлы, а не txt  в бинарном? Iostream ios binary пробовал но что тоне получилось, может я его не правильно использую.
источник

VK

Valentin Kornienko in Deus Volt!
Denis Davydov
Всем здравствуй. Как вы читаете бинарные файлы, именно .bin, .rom .hex файлы, а не txt  в бинарном? Iostream ios binary пробовал но что тоне получилось, может я его не правильно использую.
Что?
источник

VK

Valentin Kornienko in Deus Volt!
В чем вопрос и какая конечная цель?
источник

DD

Denis Davydov in Deus Volt!
На c++ открыть бинарник я удаленно прошиваю устройства
источник

DD

Denis Davydov in Deus Volt!
Valentin Kornienko
В чем вопрос и какая конечная цель?
источник

s

sexst in Deus Volt!
Denis Davydov
На c++ открыть бинарник я удаленно прошиваю устройства
А открывать его при этом зачем?)
источник

DD

Denis Davydov in Deus Volt!
sexst
А открывать его при этом зачем?)
А на си читаете файл не открывая его?
источник

s

sexst in Deus Volt!
Denis Davydov
А на си читаете файл не открывая его?
Так если он скомпилированный и бинарный, что там читать то?
источник

DD

Denis Davydov in Deus Volt!
sexst
Так если он скомпилированный и бинарный, что там читать то?
Нет вы меня не правильно поняли. Есть сервер на си, который открывает файл и посылает его беспроводным путем на устройство. Последний в свою очередь перезагружается входит в Бутлоадер и прошивает "себя"
источник

DD

Denis Davydov in Deus Volt!
Denis Davydov
В данный момент я костыляю
источник

DD

Denis Davydov in Deus Volt!
Вариант рабочий. но неудобный
источник

DD

Denis Davydov in Deus Volt!
правда это было давно лет 3-4 назад пробовал открывать bin файл, тогда я был зеленый и глупый😁.
источник

DD

Denis Davydov in Deus Volt!
как нибудь попробую. Думал здесь поделятся опытом люди которые имели дело с подобным
источник

s

sexst in Deus Volt!
Ну так он просто делает какой-нибудь системный вызов open() с указанием пути к файлу, считывает байты и как-то скармливает устройству.
источник

DD

Denis Davydov in Deus Volt!
sexst
Ну так он просто делает какой-нибудь системный вызов open() с указанием пути к файлу, считывает байты и как-то скармливает устройству.
источник

DD

Denis Davydov in Deus Volt!
Точнее делаю так, тут кусок кода от функции которая преобразует txt в int.
источник

s

sexst in Deus Volt!
Denis Davydov
Fstream fs это вот и есть открытие файла. Дальше вам нужен метод read класса fstream. Типа fs.read(<buffer>,<bytes count>)  чтобы считать байты из файла в массив char.
источник

DD

Denis Davydov in Deus Volt!
sexst
Fstream fs это вот и есть открытие файла. Дальше вам нужен метод read класса fstream. Типа fs.read(<buffer>,<bytes count>)  чтобы считать байты из файла в массив char.
👍попробую на неделе
источник

s

sexst in Deus Volt!
Denis Davydov
👍попробую на неделе
https://stackoverflow.com/questions/18816126/c-read-the-whole-file-in-buffer
Вот тут прямо полный пример как считать весь файл в массив в памяти. Будь линух, я бы mmap посоветовал, конечно, а не такое
источник

Д

Дмитрий in Deus Volt!
Serhii
Делал счётчик моточасов по похожей схеме. В качестве детектора отключения питания использовал супервизор напряжения, который устанавливал перед диодом. Вывод супервизора цеплял на gpio, на котором настраивал прерывание по изменению уровня. Во время работы устройства инкрементировал переменную времени, по прерыванию от супервизора сохранял результат.
Самое логичное решение на мой взгляд. Но,  если нет детектора,  то думаю можно и каждые 1-10мин писать в память несколько одинаковых переменных счета.  Если питание пропало,  то испорченные данные могут быть только в одной переменной.  Далее сравнивает,  ищем большинство и принимаем его как счет для продолжения...  Как-то так думаю можно
источник