Фискальный регистратор или кассовый аппарат, управление ими?
Документация к нему
1С
не катит
спасиб
Какая у тебя конкретно модель?
Предстоит выбрать. Посоветуешь че-нить?
http://www.dialog-universal.ru/prim07.htm, потому что он считался лучшим. Почему он считался лучшим - я хз. При покупке они дают документацию и вообще можно позвонить производителю, соединиться с техническим персоналом и получить ответы на свои вопросы.
Я этим занимался два года назад. Мы использовали
А если надо написать прогу на С, которая будет работать с регистратором, там есть необходимая документация и библиотеки?
Документация есть по командам которые можно послать регистратору через последовательный интерфейс. Библиотеки нет.
Через com-порт чтоли? По битам?
Ещё один хороший регистратор: ШТРИХ ФР-М. Поставляется с детальной документацией и удобными средствами для программирования. От драйвера до COM-компонента, работающего с аппаратом, который позволяет писать как на C++, так и на VB или Java.
Через com-порт чтоли? По битам?Да. Тебе уже страшно?
Вот в эту контору я ездил вчера, так там менеджеры минут 15 че-то мычали, но так и не сказали ничего дельного. Значит в комплект поставки входят все хеадеры и библиотеки? Отлично!
Не то что бы страшно, просто надо прогу написать быстро. А вспоминать асму и разбираться с этими портами потребует время.
Пост-терминалы, насколько я знаю, вообще под DOS-ом бегают.
Дос не катит.
Не знаю, там, где я этим занимался были аж 6 книжек, от описания COM-компонента до описания команд через COM-порт. А драйвера к нему ставились с кучей всяких примочек.
> Дос не катит.
В каких ещё системах нужно кодировать доступ к последовательному порту на ассемблере?
Да и в DOS не надо вроде, там драйвер есть...
Для каких ещё регистраторов нужно что-то кодировать для COM-порта?
Для большинства железок до сих пор приходится ковырять com-порт, т.к. нет более высокоуровневых стандартов на передачу данных
Внутри регистратора DOS. Нас это ниипёт.
Не то что бы страшно, просто надо прогу написать быстро. А вспоминать асму и разбираться с этими портами потребует время.Причем здесь asm?
Ты не путай последовательный порт с портами в которые пишут ассемблерными командами in/out
Я писал на це, средства доступа к последовательному порту есть почти во всех языках. Например в perl. На perl быстро напишешь свою задачу.
На С надо писать!
Што под виндами, что под Unix общение с ком-портом - это просто элементарная операция, даже без применения супер-спец-библиотек.
т.е. получается что-то такое:
f = OpenFile("Com1");
WriteFile(f, bla-bla);
ReadFile(f, ...);
CloseFile(f);
CreateFile("COM1", ...);
BuildCommDCB(...); // опционально
SetCommState(...);
SetCommTimeouts(...);
и дальше пользоваться Overlapped IO чтобы не было блокировок, хотя можно и без него.
Еще есть установка параметров порта в самом начале, и контроль CRC по ходу работы.
контроль чего?
хуйню напечатал. Контроль четности.
а типа разве это не на уровне железа/драйверов делается?
Еще есть установка параметров порта в самом начале, и контроль CRC по ходу работы.
BuildCommDCB(...); // опционально
SetCommState(...);
это оно и есть.
Драйвер может игнорировать поврежденную информацию (флаг IGNPAR а может отдавать приложению с пометкой о проблемах (PARMRK). В тех случаях, когда важно знать о том, что какие-то данные пропали, либо когда данные интересны даже в поврежденном виде, то выставляется второй режим.
static inline void n_tty_receive_parity_error(struct tty_struct *tty,
unsigned char c)
{
if (I_IGNPAR(tty {
return;
}
if (I_PARMRK(tty {
put_tty_queue('\377', tty);
put_tty_queue('\0', tty);
put_tty_queue(c, tty);
} else if (I_INPCK(tty
put_tty_queue('\0', tty);
else
put_tty_queue(c, tty);
wake_up_interruptible(&tty->read_wait);
}
это имхо пиздец какой-то
http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap11.html
А что в дыбиане так плохо с мануалами, что приходится RTFS?
Причём это не просто так, это POSIX: А что в дыбиане так плохо с мануалами, что приходится RTFS?
ну сомневаюсь, что в каком-то мануале так же кратко и понятно написано
/parity
Хотя может быть тебе код понятнее чем слова. Но, согласись что найти эту функцию дольше, чем вышеописанная последовательность нажатий клавиш.
man termiosсогласен
/parity
только в свете вышеизложенного, я не знал, что надо смотреть именно termios
разве на уровне железа можно отследить все битые пакеты?
какие ещё пакеты в последовательном порту?
на логическом уровне обмен идет пакетами, запрос-ответ обычно.
ну протокол, который реализуется приложением, оному приложению и проверять, естественно
какие ещё пакеты в последовательном порту?
Обыкновенные пакеты. Стартовый бит (ноль 8 бит данных, 1 бит четности, стоповый бит (еденицца затем произвольный промежуток времени в течение которого в проводе еденицца. Чем тебе не пакет?
ЗЫ: Естественно, все вышеописанные параметры могут меняться в определенных пределах (типа, полтора стоповых бита может быть, например).
> разве на уровне железа можно отследить все битые пакеты?
Нет, только те, где кол-во ошибок нечетное
(под пакетом мы имеем в виду октет)
(под пакетом мы имеем в виду октет)
Вообще говоря, протокол RS-232 по которому общается COM-порт, оперирует не с октетами, а со словами. Размер одного передаваемого слова устанавливается, и может быть от 6 до 9 бит (9 бит, к сожалению, не поддерживаются компьютерным UARTом).
Оставить комментарий
Slavaga
Что нужно для того, чтобы можно было бы программно управлять сабжем?И где это брать?