Материал из Ananas
Версия от 23:14, 6 августа 2009; Radist (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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