@xhimikus

Как на СИ реализовать алгоритм перевода изображения из строки modbus в переменную?

Имеется светодиодная матрица и плата работающая с нею по протоколу modbus.
Матрице прилетают команды типа этой:
10 10 00 18 00 43 86 00 20 20 20 00 87 00 00 00 00 00 00 00 00 00 00 0C 1F 80 00 0E 3F 80 00 0F 31 00 00 0F B0 00 00 0D B0 00 00 0C 1C 00 00 0C 1C 00 00 0C 30 00 00 0C 30 80 00 0C 31 80 00 0C 31 80 00 3F 3F 00 00 3F 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A5 2A

Нужно в идеале получать в переменную состояние цифр отображаемых на экране, на первых порах пойдет и jpeg картинка..
Протокол разобрал на скок это требуется, накидал алгоритм.. А вот как это реализовать на СИ например ?
Кто может какие нибудь наброски , чтоб понять в какую сторону двигаться..
берем строку из протокола modbus:
00000C1F80000E3F80000F3100000FB000000DB000000C1C00000C1C00000C3000000C3080000C3180000C3180003F3F00003F1F
---------------------------------------------------------
разбиваем на столбцы по 8:
0 0 0 0 0 C 1 F 
8 0 0 0 0 E 3 F 
8 0 0 0 0 F 3 1 
0 0 0 0 0 F B 0 
0 0 0 0 0 D B 0 
0 0 0 0 0 C 1 C 
0 0 0 0 0 C 1 C 
0 0 0 0 0 C 3 0 
0 0 0 0 0 C 3 0
8 0 0 0 0 C 3 1 
8 0 0 0 0 C 3 1 
8 0 0 0 3 F 3 F 
0 0 0 0 3 F 1 F 
---------------------------------------------------------
Переводим в бинарный вид:
0000 0000 0000 0000 0000 1100 0001 1111
1000 0000 0000 0000 0000 1110 0011 1111
1000 0000 0000 0000 0000 1111 0011 0001
0000 0000 0000 0000 0000 1111 1011 0000
0000 0000 0000 0000 0000 1101 1011 0000
0000 0000 0000 0000 0000 1100 0001 1100
0000 0000 0000 0000 0000 1100 0001 1100
0000 0000 0000 0000 0000 1100 0011 0000
0000 0000 0000 0000 0000 1100 0011 0000
1000 0000 0000 0000 0000 1100 0011 0001
1000 0000 0000 0000 0000 1100 0011 0001
1000 0000 0000 0000 0011 1111 0011 1111
0000 0000 0000 0000 0011 1111 0001 1111
----------------------------------------------------------
Перетусовываем столбики по алгоритму 
4>1,3>2,2>3,1>4,8>5,7>6,6>7,8>5 :
0000 0000 0000 0000 1111 0001 1100 0000
0000 0000 0000 1000 1111 0011 1110 0000
0000 0000 0000 1000 0001 0011 1111 0000
0000 0000 0000 0000 0000 1011 1111 0000
0000 0000 0000 0000 0000 1011 1101 0000
0000 0000 0000 0000 1100 0001 1100 0000
0000 0000 0000 0000 1100 0001 1100 0000
0000 0000 0000 0000 0000 0011 1100 0000
0000 0000 0000 0000 0000 0011 1100 0000
0000 0000 0000 1000 0001 0011 1100 0000
0000 0000 0000 1000 0001 0011 1100 0000
0000 0000 0000 1000 1111 0011 1111 0011
0000 0000 0000 0000 1111 0001 1111 0011
----------------------------------------------------------
Зеркалим биты:
0000 0000 0000 0000 1111 1000 0011 0000
0000 0000 0000 0001 1111 1100 0111 0000
0000 0000 0000 0001 1000 1100 1111 0000
0000 0000 0000 0000 0000 1101 1111 0000
0000 0000 0000 0000 0000 1101 1011 0000
0000 0000 0000 0000 0011 1000 0011 0000
0000 0000 0000 0000 0011 1000 0011 0000
0000 0000 0000 0000 0000 1100 0011 0000
0000 0000 0000 0000 0000 1100 0011 0000
0000 0000 0000 0001 1000 1100 0011 0000
0000 0000 0000 0001 1000 1100 0011 0000
0000 0000 0000 0001 1111 1100 1111 1100
0000 0000 0000 0000 1111 1000 1111 1100
---------------------------------------------------------
Убрал пробелы:
00000000000000001111100000110000
00000000000000011111110001110000
00000000000000011000110011110000
00000000000000000000110111110000
00000000000000000000110110110000
00000000000000000011100000110000
00000000000000000011100000110000
00000000000000000000110000110000
00000000000000000000110000110000
00000000000000011000110000110000
00000000000000011000110000110000
00000000000000011111110011111100
00000000000000001111100011111100
---------------------------------------------------------
Заменил 0 на . ,и 1 на О для наглядности:

................OOOOO.....OO....
...............OOOOOOO...OOO....
...............OO...OO..OOOO....
....................OO.OOOOO....
....................OO.OO.OO....
..................OOO.....OO....
..................OOO.....OO....
....................OO....OO....
....................OO....OO....
...............OO...OO....OO....
...............OO...OO....OO....
...............OOOOOOO..OOOOOO..
................OOOOO...OOOOOO..


p.s. Сам еще зеленый совсем ...
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы