Имя: Пароль:
IT
 
Кассовый аппарат
,
0 Человечкин
 
20.04.12
16:57
Есть кассовый аппарат Мини 500.02 ме, для подключения в режиме фискального принтера тут требуют следующее:

Запретите передачу копии печати ЭККА  через коммуникационный порт на компьютер:

команда:       606  <ПС>  [<пароль> <ПС>]    <число>  <ПС>  <ОПЛ>

где: число –  это десятичное число = сумме запрограммированных параметров; После ввода: 606  <ПС>  [<пароль> <ПС>] на индикаторе ЭККА  отображается это число, которое можно оставить без изменений (введя  <ПС>  <ОПЛ>) или ввести новое значение (<число>  <ПС>  <ОПЛ>). Для запрета копии печати новое значение <числа> можно определить по следующему алгоритму, используя инженерный калькулятор:

<отображаемое число> <операция AND> 65279  = <новое число>

Если копия печати уже была заблокирована, то <новое число>  будет совпадать с <отображаемым числом>, иначе введите <новое число>.
ОПЛ    –    управляющая клавиша на клавиатуре ЭККА


Помогите расшифровать что сделать, отображаемое число поставили 256, а что за операция and? Есть такая операция в "программном" режиме калькулятора, это она? если все так то выдает 0, чувствую что что-то не то.
1 Aleksey
 
20.04.12
17:00
and - логическое И
2 Aleksey
 
20.04.12
17:01
т.е. идет побитное сложение твоего числа и 1111111011111111
3 Человечкин
 
20.04.12
17:02
хороо, а в какой системе исчисления это делать?
4 Человечкин
 
20.04.12
17:03
hex, dec, oct, bin?
Или в дек ввести 256 нажать енд и потом 65279? или в бин каждое перевести и сложить?
5 Aleksey
 
20.04.12
17:04
(4) от системы счисления результат не меняется
6 Человечкин
 
20.04.12
17:04
помогите понять алгоритм, или помогите вычислить пожалуйста.
7 Человечкин
 
20.04.12
17:05
тобишь получается 65535? такое число и ввести туда? зачем тогда такой алгоритм описали?
8 Aleksey
 
20.04.12
17:05
(6) За тебя кнопки на куркулятор нажать?
9 Aleksey
 
20.04.12
17:06
Какое число показывает у тебя после 606  <ПС>  [<пароль> <ПС>]
10 Человечкин
 
20.04.12
17:06
Понимаю, пятница :) Если не сложно, подтвердите правильность моего понимания и пййду в бой. Аппарат фискализирован, стремно..
11 Человечкин
 
20.04.12
17:06
256
12 Человечкин
 
20.04.12
17:06
Изначально был 0
13 Человечкин
 
20.04.12
17:08
Игрался с кодами да запретами, поставили 256, для разрешения печати копии на ПК, тоесть 0+65279 = 65279 - это число туда вбить?
14 Aleksey
 
20.04.12
17:09
(13) Нет
Смысл какой у тебя 16 параметров. Каждый параметр он имеет значение 0 или 1 (вкл, выкл)
15 Человечкин
 
20.04.12
17:09
так, продолжай
16 Aleksey
 
20.04.12
17:09
запрета копии печати это 9 параметр
Т.е. 1 - можно печатать 0 нельзя
17 Aleksey
 
20.04.12
17:10
после ввода 606  <ПС> ты получаешь текущие настройки, например у тебя это 256
18 Человечкин
 
20.04.12
17:11
хорошо, есть команда у меня: 606  <ПС>  [<пароль> <ПС>] (сюда нужно что-то вбить) <ПС>, не понял что именно и как вычислить
19 Человечкин
 
20.04.12
17:11
До того как я вбил туда 256 было установлено - 0
20 Aleksey
 
20.04.12
17:11
(19) Верни 0 обратно
21 Человечкин
 
20.04.12
17:12
Ок. вернул.
22 Aleksey
 
20.04.12
17:12
(21) Все ты решил проблему
23 Человечкин
 
20.04.12
17:13
блин )
24 Человечкин
 
20.04.12
17:14
просто вот какая ситуация, пытаюсь отпечатать чек: подключаюсь, все гуд, комментарии печатает, а товар не хоче продавать ((
25 Человечкин
 
20.04.12
17:14
пишет ошибки 10 и 14
26 Человечкин
 
20.04.12
17:15
Метод SALE_  (продажа)


Назначение:  выполнить продажу товара.

Формат:

 SALE_ ( Ncom: integer;  Vcom: integer;  Name: widestring;  Quantity: double;  Price: double;  NumDep: integer ): wordbool;
   
   Результат:       Истина – ЭККА выполнил продажу;      Ложь – операция не выполнена.

Параметры:
Ncom     -    номер COM-порта (1 – 8);
Vcom     -    скорость для ЭККА (4800, 9600, 19200);
Name            -      наименование товара (максимально-допустимая длина – см. табл.4;  преобразование символов – см. табл.7 );
Quantity       -    количество товара;
Price     -    цена товара;
NumDep     -    номер отдела.

Примеры:  
Исходные данные: ЭККА подключен к COM2.
По команде 618 в ЭККА установлена скорость 19200.

Реализация:  Sale_(2,19200,’Колбаса’,1.5,9.50,1);  Продать полтора кг “Колбаса” по цене 9грв 50коп по отделу 1.
27 Aleksey
 
20.04.12
17:16
Начнем с простого

Допустим у тебя 3 параметра

Параметр 1
Параметр 2
Параметр 3

Соответственно 0 вЫключен, 1 включен

Если тебе нужно включить второй и не выключить остальные то ты должен ввести 010b т.е. 2

Предположим у тебя уже были какие то параметры, например 101b = 5, т.е. при вводе 606  <ПС>  тебе машина пишет 5.
Тебе надо поменять первый и второй параметр, т.е. установить первый в 0, а второй в 1, а третий оставить как есть, т.е. в 1. значит ты должен ввести 011b  что соответствует 3 в десятичном формате, т.е. вместо числа 5 ты вводишь 3
28 Aleksey
 
20.04.12
17:17
По аналогии у тебя работает и для твоих 16 параметров
29 Человечкин
 
20.04.12
17:19
Ага, я понял, спасибо :)
30 Aleksey
 
20.04.12
17:23
По поводу <AND> 65279

Это логическое И. Вернемся к нашему примеру с 3 параметрами. У нас есть число 011b, т.е. 3. Нам нужно поменять второй параметр, при этом остальные не должны изменятся. Значит для "включения" его нужно провести логическую операцчию с числом 7 (111), а для выключение - с числом 5 (101)

Как работает логическое "И"

У нас есть число 011b и наша маска 101b. Программа по битно (по символьно) сравнит числа и если и там и там 1 на выходе будет 1. Если хоть в одном из значений 0 - то и на выходе 0.

Что имеем
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1

Значит результат 3 (наше число которое в программе) and 5 даст 1. Т.е. в кассу ты вводишь новое число 1
31 Aleksey
 
20.04.12
17:24
Аналогично когда у тебя 16 параметров
32 Человечкин
 
20.04.12
17:25
Понял, спасибо, доходчиво и на пальцах.
33 Йохохо
 
20.04.12
18:42
операцией И нельзя включить, 5 И 3 = 1
по-этому магическое число 65279 имеет ровно 1 нолик в нужной позиции
чтобы включить придется сделать ИЛИ с 256
34 Аннюточка
 
21.04.12
04:54
(32) Человечкин такой овечкин чел.
35 Aleksey
 
21.04.12
12:05
(33) С ИЛИ согласен, а с 256 - нет. Фигня получится. так как включишь всё. Т.е. для включения второго праметра нужно ИЛИ с 010b = 2