Материал из Ananas
Перейти к: навигация, поиск
м
м (Сканеры Штрихкода:)
 
(не показана одна промежуточная версия этого же участника)
Строка 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" а при сканировании штрихкода при открытом документе автоматически заполнилось поле 'Имя' значением считанного штрихкода.