Radist (обсуждение | вклад) м |
Radist (обсуждение | вклад) м (→Сканеры Штрихкода:) |
||
(не показана одна промежуточная версия этого же участника) | |||
Строка 20: | Строка 20: | ||
==Сканеры Штрихкода:== | ==Сканеры Штрихкода:== | ||
− | *Все модели с последовательным портом (Универсальный драйвер) | + | *Все модели с последовательным портом (Универсальный драйвер)и USB в режиме эмуляции RS-232 (протестировано с Cipher1000 и Metrologic 5145) |
==Ридеры магнитных карт:== | ==Ридеры магнитных карт:== | ||
Строка 37: | Строка 37: | ||
TEDisplayVF2029 | TEDisplayVF2029 | ||
TECashRegisterShtrihFR | TECashRegisterShtrihFR | ||
+ | |||
+ | =Пример использование в скрипте:= | ||
+ | |||
+ | Ananas script examples for trade equipment drivers: | ||
+ | TEDisplayVF2029, TEReaderBarcode | ||
+ | |||
+ | ==1.global module:== | ||
+ | |||
+ | |||
+ | var TradeEq = 0; // global trade equipment manager | ||
+ | var TEDisplay = 0; // Display object | ||
+ | var TEReader = 0; // Reader object | ||
+ | |||
+ | // EVENTS GLOBAL HANDLER | ||
+ | function on_event( src, data ) | ||
+ | { | ||
+ | sys.Message(1,"Global module: on_event from "+src+" data="+data); | ||
+ | } | ||
+ | |||
+ | function on_systemstart() | ||
+ | { | ||
+ | TradeEq = new TradeEquipment(); | ||
+ | TEDisplay = TradeEq.newDriver("TEDisplayVF2029"); | ||
+ | if (TEDisplay) { | ||
+ | TEDisplay.setPortBaudRate(12); //9600 | ||
+ | TEDisplay.setPortNumberAndInit(2); // COM2 | ||
+ | } | ||
+ | TEReader = TradeEq.newDriver("TEReaderBarcode"); | ||
+ | if (TEReader) { | ||
+ | TEReader.PortNumber = 1; | ||
+ | TEReader.PortBaudRate = 9600; | ||
+ | TEReader.startDriver(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | ==2.Document module== | ||
+ | |||
+ | // | ||
+ | function on_formstart(){ | ||
+ | TEReader.clearBuffer(); // clear unprocessed barcodescodes | ||
+ | } | ||
+ | |||
+ | // DISPLAY TEXT ON ROW CHANGED. | ||
+ | function on_tablerow( name ){ | ||
+ | print("Table "+name+" row changed"); | ||
+ | TEDisplay.showText("ROW CHANGED","line1","scroll/left"); | ||
+ | } | ||
+ | |||
+ | // EVENTS DOCUMENT HANDLER | ||
+ | function on_event( src, data ) | ||
+ | { | ||
+ | sys.Message(1,"Document module: on_event from "+src+" data="+data); | ||
+ | if (src=="TradeEquipment") { | ||
+ | // NEED CHECK 'data' VALUE FOR READER EVENT FILTERS | ||
+ | bc = TEReader.text(); | ||
+ | SetValue("Имя", bc); // SET FIELD VALUE TO BARCODE READED | ||
+ | TEReader.next(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | В результате выполнения этих модулей на дисплей покупателя вывелось "ROW CHANGED" а при сканировании штрихкода при открытом документе автоматически заполнилось поле 'Имя' значением считанного штрихкода. |
Текущая версия на 23:14, 6 августа 2009
Содержание
te
В исходниках Ананаса есть расширение te [1], позволяющее в Ананас скрипте использовать все драйвера из проекта tradeequip как родные объекты Ананас скрипта. Оно отвечает за взаимодействие с оборудованием через драйвера tradeequip. Для того чтобы откомпилировать расширение te, должны быть установлены библиотеки и заголовочные файлы tradeequip.
По умолчанию при сборке Ананаса из CVS компиляция расширения te отключена. Для того чтобы включить сборку этого расширения следует убрать комментарий:
#unix:SUBDIRS += te
в файле
ananas/src/extensions/extensions.pro
чтобы было так
unix:SUBDIRS += te
Драйвера, которые уже работают в tradeequip:
Фискальные регистраторы:
- ШТРИХ-ФР-(К/Ф)
Сканеры Штрихкода:
- Все модели с последовательным портом (Универсальный драйвер)и USB в режиме эмуляции RS-232 (протестировано с Cipher1000 и Metrologic 5145)
Ридеры магнитных карт:
- Все с последовательным портом, клавиатурные (УНИДрайвер)
Дисплеи покупателя:
- Epson, Firich, VF2029, DSP800
Список реально работающих драйверов:
TEReaderBarcode TEReaderCard TEDisplayPC TEDisplayEpson TEDisplayDSP800 TEDisplayVF2029 TECashRegisterShtrihFR
Пример использование в скрипте:
Ananas script examples for trade equipment drivers: TEDisplayVF2029, TEReaderBarcode
1.global module:
var TradeEq = 0; // global trade equipment manager var TEDisplay = 0; // Display object var TEReader = 0; // Reader object
// EVENTS GLOBAL HANDLER function on_event( src, data ) {
sys.Message(1,"Global module: on_event from "+src+" data="+data);
}
function on_systemstart() {
TradeEq = new TradeEquipment(); TEDisplay = TradeEq.newDriver("TEDisplayVF2029"); if (TEDisplay) { TEDisplay.setPortBaudRate(12); //9600 TEDisplay.setPortNumberAndInit(2); // COM2 } TEReader = TradeEq.newDriver("TEReaderBarcode"); if (TEReader) { TEReader.PortNumber = 1; TEReader.PortBaudRate = 9600; TEReader.startDriver(); }
}
2.Document module
// function on_formstart(){
TEReader.clearBuffer(); // clear unprocessed barcodescodes
}
// DISPLAY TEXT ON ROW CHANGED. function on_tablerow( name ){
print("Table "+name+" row changed"); TEDisplay.showText("ROW CHANGED","line1","scroll/left");
}
// EVENTS DOCUMENT HANDLER function on_event( src, data ) {
sys.Message(1,"Document module: on_event from "+src+" data="+data); if (src=="TradeEquipment") { // NEED CHECK 'data' VALUE FOR READER EVENT FILTERS bc = TEReader.text(); SetValue("Имя", bc); // SET FIELD VALUE TO BARCODE READED TEReader.next(); }
}
В результате выполнения этих модулей на дисплей покупателя вывелось "ROW CHANGED" а при сканировании штрихкода при открытом документе автоматически заполнилось поле 'Имя' значением считанного штрихкода.