0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 30
1

Сохранение данных 16 разрядных в бинарный файл

25.04.2020, 15:51. Показов 2246. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
у меня есть данные 16 разрядные, как их лучше сохранить в бинарный файл, чтобы потом можно было открыть через arduino, пытался сохранять преобразуя в ascii символы, оказалось не лучшей идеей.
для примера есть
массив из данных
C++
1
uint8_t image_bits[] = {0xCE, 0x00, 0xBA, 0x00, 0x83, 0x01, 0x45, 0x01, 0x01, 0x01, 0x01, 0x01, 0xBB, 0x01, 0x82, 0x00, 0x44, 0x00}
как их сохранить в файл допустим image.bin, и как они будут выглядеть в этом файле?
Ну и соответственно вытащить их оттуда.
Всю голову сломал с преобразованием.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uint8_t decodexbm(String text)
{
  //String textsubstring=text.substring(0,10);
  Serial.println("text["+String(text.length())+"]["+text+"]");
  int i = 0;
  char textchar[10];
  text.toCharArray(textchar,9);
  Serial.println("textchar["+String(sizeof(textchar))+"]["+String(textchar)+"]");
  
  while (i < 10)
  {
    Serial.print("(");
    Serial.print(textchar[i]);
    Serial.print(")");
    uint8_t uint8Symbol = uint8_t(textchar[i]);
    Serial.print (uint8Symbol);
    Serial.print (",");
    i++;
  }
  Serial.println();
  return 0xCE;
}
неудачная затея с ascii
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2020, 15:51
Ответы с готовыми решениями:

Сохранение данных. Бинарный файл
Интересует вопрос по способам сохранности целостности файла. Я сохраняю файл простым...

Сохранение данных из ListBox в бинарный файл.
Может мой вопрос и покажется глупым, но мне надо написать курсач по программированию и там есть...

Сохранение данных из DataGridView в бинарный или текстовый файл
ребят помогите с кодом разобраться. У меня не получается сохранить данные из datagridview в файл...

Сохранение строки в бинарный файл
я сохраняю строку посимвольно через fwrite (в цикле), может можно проще? з.ы. именно бинарный...

34
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
25.04.2020, 15:55 2
phantomstealth, Вам код записи бинарного файла для ПК или Arduino нужен?
1
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
25.04.2020, 16:03 3
Для ПК:
C++
1
2
3
4
5
uint8_t image_bits[] = {0xCE, 0x00, 0xBA, 0x00, 0x83, 0x01, 0x45, 0x01, 0x01, 0x01, 0x01, 0x01, 0xBB, 0x01, 0x82, 0x00, 0x44, 0x00};
 
std::ofstream fout("image.bin", std::ios_base::binary);
fout.write((char*)image_bits, sizeof(image_bits) / sizeof(image_bits[0]));
fout.close();
В файле будет выглядеть так:
Сохранение данных 16 разрядных в бинарный файл
1
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 30
25.04.2020, 17:15  [ТС] 4
Записать в c#, открыть в ардуино, а каким приложением открывали файл?
0
Эксперт .NET
10111 / 6102 / 1438
Регистрация: 25.05.2015
Сообщений: 18,521
Записей в блоге: 14
25.04.2020, 17:18 5
Цитата Сообщение от phantomstealth Посмотреть сообщение
у меня есть данные 16 разрядные,
для примера есть массив из данных
uint8_t
Так 8 или 16?
Цитата Сообщение от phantomstealth Посмотреть сообщение
Записать в c#
А тема в разделе C++ почему?
Цитата Сообщение от phantomstealth Посмотреть сообщение
а каким приложением открывали файл?
Встроенный просмотрщик в Midnight Commander.
0
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 30
25.04.2020, 17:28  [ТС] 6
8 бит, спутал с hex форматом. Потому что открыть в arduino, а там c++
0
Эксперт .NET
10111 / 6102 / 1438
Регистрация: 25.05.2015
Сообщений: 18,521
Записей в блоге: 14
25.04.2020, 17:33 7
И что? Причём тут C# тогда?

Файл надо записать где, на ПК или в самой ардуине?

Добавлено через 2 минуты
И зачем вам в ардуине понадобился XBM формат?
0
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 30
25.04.2020, 17:34  [ТС] 8
Записать на ПК (c#) , а открыть на arduino (c++)
0
Эксперт .NET
10111 / 6102 / 1438
Регистрация: 25.05.2015
Сообщений: 18,521
Записей в блоге: 14
25.04.2020, 17:35 9
Замурчательно.
Так 8 бит или 16?
Почему XBM?
0
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 30
25.04.2020, 17:36  [ТС] 10
Метеостанция написанная на пк, сохраняет в сети файл погоды(картинку солнца, или дождя), а в ардуино открывается для показа на черно-белом дисплее. 8 бит
0
Эксперт .NET
10111 / 6102 / 1438
Регистрация: 25.05.2015
Сообщений: 18,521
Записей в блоге: 14
25.04.2020, 17:39 11
То, что надо передать изображение, и так понятно.
Вы ответьте на заданные вопросы.

Кстати, почему в файл? Почему не передать напрямую в COM порт? Вы же не будете каждый файл на SD карте таскать?
0
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 30
25.04.2020, 17:41  [ТС] 12
Ардуинка на WiFi непривязана к пк, находится в другом месте
0
Эксперт .NET
10111 / 6102 / 1438
Регистрация: 25.05.2015
Сообщений: 18,521
Записей в блоге: 14
25.04.2020, 17:43 13
C#
1
2
3
4
byte [] image_bits = new byte[]{ 0xCE, 0x00, 0xBA, 0x00, 0x83, 0x01, 0x45, 0x01, 0x01, 0x01, 0x01, 0x01, 0xBB, 0x01, 0x82, 0x00, 0x44, 0x00 };
using (var stream = new FileStream("image.bin", FileMode.Create)) {
    stream.Write(image_bits, 0, image_bits.Length);
}
Добавлено через 1 минуту
Чую, у вас там дохрена костылей на синей изоленте. Но прояснить ситуацию для их уменьшения вы не желаете.
1
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 30
25.04.2020, 17:51  [ТС] 14
супер-пупер, а открыть в arduino?

Я бы прояснил, за ситуацию Программа на ПК (бот на вконтакте). заходит в яндекс погоду, парсит погоду, парсит у другой ардуинки текущую температуру, и сохраняет это все на сервере
HTML5
1
https://meteohome.000webhostapp.com/
, там все в формате json. а вторая ардуинка находящаяся в другом городе, парсит все эти собранные данные, и показывает в и включая картинку
HTML5
1
https://yastatic.net/weather/i/icons/funky/light/skc_d.svg
, вот эта картинка переведенная из векторного рисунка в растровый черно-белый размера 64х64, и нужна мне.

Куча изоленты ужос, но уже с этим ничего не поделать
0
Эксперт .NET
10111 / 6102 / 1438
Регистрация: 25.05.2015
Сообщений: 18,521
Записей в блоге: 14
25.04.2020, 17:57 15
Цитата Сообщение от phantomstealth Посмотреть сообщение
вот эта картинка переведенная из векторного рисунка в растровый черно-белый размера 64х64, и нужна мне.
А переводит-то кто?
Цитата Сообщение от phantomstealth Посмотреть сообщение
а открыть в arduino?
С ардуиной не работал. Не знаю, как там файлы открываются.

Добавлено через 1 минуту
Цитата Сообщение от phantomstealth Посмотреть сообщение
Программа на ПК заходит в яндекс погоду, парсит погоду, парсит у другой ардуинки текущую температуру, и сохраняет это все на сервере
Почему сервер сам не может зайти на яндекс и забрать данные о погоде?

Добавлено через 1 минуту
Цитата Сообщение от phantomstealth Посмотреть сообщение
и показывает в и включая картинку
Почему картинку не сохранить в ардуине? Врядли их там миллионы вариантов.
Ну или в тот же json засунуть до кучи?
0
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 30
25.04.2020, 18:09  [ТС] 16
Цитата Сообщение от Rius Посмотреть сообщение
А переводит-то кто?
Переводит и всю эту гадость делает моя программа на ПК
Сохранение данных 16 разрядных в бинарный файл
Цитата Сообщение от Rius Посмотреть сообщение
С ардуиной не работал. Не знаю, как там файлы открываются.
Так же как в c++, только некоторые команды по другому прописываются.
Цитата Сообщение от Rius Посмотреть сообщение
Почему сервер сам не может зайти на яндекс и забрать данные о погоде?
Это всё на другом языке пишется кроме C#, ничего не умею,
Цитата Сообщение от Rius Посмотреть сообщение
Почему картинку не сохранить в ардуине? Врядли их там миллионы вариантов.
Уже хотел бы мочь передать любое изображение онлайн.
0
Эксперт .NET
10111 / 6102 / 1438
Регистрация: 25.05.2015
Сообщений: 18,521
Записей в блоге: 14
25.04.2020, 18:22 17
Цитата Сообщение от phantomstealth Посмотреть сообщение
Так же как в c++, только некоторые команды по другому прописываются.
Файл-то к ардуине как попадает? С интернета скачивает, на флешке приносите, с сетевого диска?
Цитата Сообщение от phantomstealth Посмотреть сообщение
Это всё на другом языке пишется кроме C#, ничего не умею,
C# нынче кроссплатформенным стал. Можно и на сервере запустить. Особенно если есть админские права.
Цитата Сообщение от phantomstealth Посмотреть сообщение
Уже хотел бы мочь передать любое изображение онлайн.
Сжать RLE, преобразовать в Base64, отправить строку. Как и json.
0
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 30
25.04.2020, 18:34  [ТС] 18
Цитата Сообщение от Rius Посмотреть сообщение
Файл-то к ардуине как попадает? С интернета скачивает, на флешке приносите, с сетевого диска?
Ардуинка каждые 10 минут заходит на
HTML5
1
response = wifi_load("https://meteohome.000webhostapp.com/xbm.bin");
Цитата Сообщение от Rius Посмотреть сообщение
Сжать RLE
К сожалению даже слов таких не знаю
Цитата Сообщение от Rius Посмотреть сообщение
Можно и на сервере запустить
Я бы с удовольствием, но опять же пока далёк от этого.
0
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
25.04.2020, 18:34 19
phantomstealth, не очень представляю, что есть файл на Arduino. Когда файл скачивается, где он сохраняется, в памяти?
0
Rius
25.04.2020, 18:36     Сохранение данных 16 разрядных в бинарный файл
  #20

Не по теме:

Цитата Сообщение от phantomstealth Посмотреть сообщение
К сожалению даже слов таких не знаю
Закодировать алгоритмом RLE

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2020, 18:36

Не работает сохранение в бинарный файл
помогите пожалуйста, вроде все работает кроме бинарного сохранения в файл TPop*data,*tmp; ...

Сохранение и загрузка в бинарный файл
Доброго времени суток. Прошу помочь с сохранением/загрузкой в/из файла. Есть два класса: ...

Сохранение из Edit в бинарный файл .dat
Мне нужно чтоб при помощи компонентов сохранить и открыть, можно было сохранять текст из edit по...

сохранение текста из memo в бинарный файл
Надо написать процедуру сохранение текста из memo в бинарный файл (чтоб при открытии этого файла,...

Сохранение и загрузка массива в бинарный файл
Есть массив 640х640 UInt16. Задача - сохранить его в бинарный файл и загрузить при необходимости...

Сохранение в бинарный файл В файле пусто
Всем привет, Прошу просветить. Не могу понять почему получаю пустой файл. Подскажите где...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru