44 / 44 / 12
Регистрация: 05.04.2015
Сообщений: 345
|
|
1 | |
Qt serial port кассовый аппарат09.04.2016, 00:42. Показов 1562. Ответов 15
Метки нет Все метки)
(
Хочу реализовать обмен с кассовым аппаратом, протокол есть в открытом доступе. Так же есть исходники библиотеки для другого аппарата, но от них помощи немного так как там С и по моему мнению сделано плохо.Какое то время я только собирал информацию по этой теме, потому что она для меня новая.
Компьютер посылает команду кассовому аппарату. С аппарата приходит ответ. Компьютер должен посмотреть этот ответ и совершать дальнейшие действия исходя из этого ответа. Как лучше всего это реализовать. Данные скорей всего не приходят мгновенно, поэтому сигнал readyRead будет срабатывать несколько раз. Кто что может посоветовать а я пока буду пытаться сам. В принципе мог обойтись без всей этой возни если бы остановился на виндосе потому что есть готовый COM объект с которым намного проще, но хочется сделать под линукс.
0
|
09.04.2016, 00:42 | |
09.04.2016, 00:42 | |
Ответы с готовыми решениями:
15
QT serial port Serial Port на Android Qt, Android and Serial Port |
![]() 1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
09.04.2016, 10:15 | 2 |
Вопрос-то в чем?
0
|
68 / 68 / 17
Регистрация: 20.01.2015
Сообщений: 347
|
|
09.04.2016, 10:21 | 3 |
RazrFalcon, Как лучше всего это реализовать.
kolts, начать с азов. Прочитать как работает QSerialPort, например. Ну а потом взять и все быстро реализовать.
0
|
![]() 1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
09.04.2016, 10:42 | 4 |
0
|
44 / 44 / 12
Регистрация: 05.04.2015
Сообщений: 345
|
|
09.04.2016, 12:13 [ТС] | 5 |
Все что касается компорта я знаю. Там настраивается все просто. Жду только общих советов по работе с кассовым аппаратом если кто работал
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
09.04.2016, 14:00 | 6 |
У тебя же есть описание протокола.
0
|
44 / 44 / 12
Регистрация: 05.04.2015
Сообщений: 345
|
||||||
09.04.2016, 15:26 [ТС] | 7 | |||||
У меня в голове перемешались hex ascii char и bytearray
![]()
Контрольная сумма вычисляется сложением без переноса всех байтов посылки, без учета байта STX и представляет собой 1-байтовое число, передаваемое в формате битового поля. Но передается она в формате ascii. То есть у меня должно получиться 14 но передаю я его не как 0х14, а "14". Как мне в данном случае получить 14 (который я получил с помощью прослушки порта).
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
09.04.2016, 15:53 | 8 |
Как 14-то получается? Что значит сложить без переноса?
0
|
44 / 44 / 12
Регистрация: 05.04.2015
Сообщений: 345
|
|
09.04.2016, 16:10 [ТС] | 9 |
Сам не знаю так в книжке написано. Еще вот добавлено
Битовое (шестнадцатеричное) поле представляет собой набор пар символов, которые передают один байт в ASCII представлении. Допустимыми символами для этого поля являются «0» ... «9» (ASCII 30H ... 39H), «A» ... «F» (ASCII 41H ... 46H), «a» ... «f» (ASCII 61H ... 66H). Длина поля различается в зависимости от конкретного применения. Пример: 27 - «1B» Это тоже относится к контрольной сумме. http://www.remkas.ru/files/M1141RukProg_v3.pdf Вот описание протокола. Оказалось что моему аппарату этот протокол не подходит, коды команд, по крайней мере некоторых, отличаются. Но я надеюсь контрольная сумма считается одинаково.
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
||||||
09.04.2016, 18:00 | 10 | |||||
Там точно 14? Вот здесь описано какое-то сложение без переноса для работы с устройством: http://www.linux.org.ru/forum/development/1427250
0
|
44 / 44 / 12
Регистрация: 05.04.2015
Сообщений: 345
|
|
09.04.2016, 21:28 [ТС] | 11 |
Тоже гуглил это, но походу здесь так
0x5f + //код команды 0x30 + 0x30 + 0x30 + 0x30 //(это "0000") + 0x00 //нуль терминатор - разделитель полей + 0x30 + 0x34 // "04" данные + 0x00 + 0x30 + 0x30 //"00" данные + 0x00 = 214; //сумма Отбрасываем 2, так как нужен 1 байт и получаем 14. Буду посмотреть что получится дальше. Объяснено в описании конечно...
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
09.04.2016, 21:54 | 12 |
А где единица после четырёх нулей? У тебя же она в том сообщении есть.
0
|
44 / 44 / 12
Регистрация: 05.04.2015
Сообщений: 345
|
||||||
09.04.2016, 22:38 [ТС] | 13 | |||||
Пропустил, но уже в цикле проверил получается 214. Все вроде правильно, не думаю что это совпадение
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
09.04.2016, 23:01 | 14 |
Ну хорошо тогда. Только char для суммы, а не int.
0
|
732 / 692 / 110
Регистрация: 29.05.2015
Сообщений: 4,162
|
|
10.04.2016, 07:50 | 15 |
Со сложением без переноса у меня получилось 4, с просто сложением - 0x14(0x214).
0
|
68 / 68 / 17
Регистрация: 20.01.2015
Сообщений: 347
|
||||||
11.04.2016, 19:48 | 16 | |||||
1
|
11.04.2016, 19:48 | |
11.04.2016, 19:48 | |
Помогаю со студенческими работами здесь
16
Qt Serial Port отправляет только 3 байта Сборка Qt Serial Port под Android из source
Работа Scilab Serial Port Library (COM port) serial port Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Ошибка Docker "Got permission denied while trying to connect to the Docker daemon socket at"
hw_wired 14.02.2025
Разработка с использованием Docker может иногда преподносить неожиданные сюрпризы, и одним из самых распространенных камней преткновения становится ошибка с отказом в доступе к демону Docker. . . .
|
Ошибка "No 'Access-Control-Allow-Origin' header is present on the requested resource"
hw_wired 14.02.2025
При разработке современных веб-приложений нередко сталкиваешься с ошибкой "No 'Access-Control-Allow-Origin' header is present on the requested resource". Эта проблема возникает из-за политики. . .
|
Как закрыть порт в Linux
hw_wired 14.02.2025
Управление сетевыми портами в Linux - непростая, но важная задача для обеспечения безопасности системы. Каждый открытый порт - это потенциальная уязвимость, через которую злоумышленики могут. . .
|
Ошибка Angular "Can't bind to 'taskForm' since it isn't a known property of 'form'"
hw_wired 14.02.2025
При разработке веб-приложений на Angular можно столкнуться с ошибкой "Can't bind to '' since it isn't a known property of 'form'". Эта ошибка появляется в консоли браузера когда мы пытаемся. . .
|
Сообщение Git "Pulling without specifying how to reconcile divergent branches is discouraged"
hw_wired 14.02.2025
При работе с системой контроля версий Git многие разработчики сталкиваются с предупреждающим сообщением "Pulling without specifying how to reconcile divergent branches is discouraged". Это. . .
|
Как настроить количество пробелов в отступах табов в Visual Studio Code
hw_wired 14.02.2025
Visual Studio Code предоставляет несколько гибких способов настройки табуляции, каждый из которых имеет свои преимущества. Самый простой и наглядный метод - через графический интерфейс настроек, где. . .
|
Что означает знак восклицания в TypeScript
hw_wired 14.02.2025
TypeScript - удивительный язык программирования, который предоставляет множество возможностей для работы с типами данных. Особый интерес вызывает оператор утверждения ненулевого значения, который. . .
|
Как свернуть/скрыть секции кода в Visual Studio Code
hw_wired 14.02.2025
Ежедневно мы работам с файлами, содержащими сотни и тысячи строк кода. Навигация по такому объему становится настоящим испытанием, особенно когда нужно быстро найти нужный метод или переменную. . . .
|
Автоматическое создание файла requirements.txt в Python
hw_wired 14.02.2025
Дружелюбная среда для разработки на Python, один из самых широко используемых языков программирования, состоит не только из самого кода, но и целого ряда важных компонентов. И если вы когда-нибудь. . .
|
Передача переменных окружения в контейнер Docker
hw_wired 14.02.2025
При работе с Docker контейнерами возникает необходимость передать различные настройки и конфигурационные параметры - от строк подключения к базам данных до API ключей. И хотя можно жестко прописать. . .
|