Содержание
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" а при сканировании штрихкода при открытом документе автоматически заполнилось поле 'Имя' значением считанного штрихкода.