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