Radist (обсуждение | вклад) м |
Radist (обсуждение | вклад) м (→Список реально работающих драйверов:) |
||
| Строка 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" а при сканировании штрихкода при открытом документе автоматически заполнилось поле 'Имя' значением считанного штрихкода. | ||
Версия 01:19, 28 июля 2009
Содержание
te
В исходниках Ананаса есть расширение te [1], позволяющее в Ананас скрипте использовать все драйвера из проекта tradeequip как родные объекты Ананас скрипта. Оно отвечает за взаимодействие с оборудованием через драйвера tradeequip. Для того чтобы откомпилировать расширение te, должны быть установлены библиотеки и заголовочные файлы tradeequip.
По умолчанию при сборке Ананаса из CVS компиляция расширения te отключена. Для того чтобы включить сборку этого расширения следует убрать комментарий:
#unix:SUBDIRS += te
в файле
ananas/src/extensions/extensions.pro
чтобы было так
unix:SUBDIRS += te
Драйвера, которые уже работают в tradeequip:
Фискальные регистраторы:
- ШТРИХ-ФР-(К/Ф)
Сканеры Штрихкода:
- Все модели с последовательным портом (Универсальный драйвер)
Ридеры магнитных карт:
- Все с последовательным портом, клавиатурные (УНИДрайвер)
Дисплеи покупателя:
- 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" а при сканировании штрихкода при открытом документе автоматически заполнилось поле 'Имя' значением считанного штрихкода.