AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.12.2006, 12:03   #1  
doo is offline
doo
Участник
 
41 / 10 (1) +
Регистрация: 05.11.2004
Еще раз про сканеры штрих кодов
доброго дня

вопрос. есть терминал сбора данных CipherLab 8001. купили. нашёл dll с функциями для работы с ним. даже пример для аксапты есть. но. не работает. com порт открывает, но далее ничего. даже не проходит функция ping призванная определить, подключен ли ТСД к порту. стандартная программа считывания данных из него работает, т.е. дело не в неработающем порте. если у кого был опыт подключнеия/использования ТСД в аксапте, поделитесь.
спасибо.
Старый 22.12.2006, 12:22   #2  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Вот только недавно подключал ККМ. Покажи код
Старый 22.12.2006, 12:43   #3  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
X++:
Boolean getDataFromScaner()
{
    boolean         error;
    DLL             dll     = new DLL('stdCipherLab');
    DLLFunction     func;
    boolean         ret;
    int             res;
    real            rr;
    int             a;
    Binary          b;//       = new Binary(res);
    str             st1, st2, st3, st4, st5, st6, st7, st8, errSt;
    Binary          struct1 = new Binary(4),
                    struct2 = new Binary(4),
                    struct3 = new Binary(4),
                    struct4 = new Binary(4),
                    struct5 = new Binary(4),
                    struct6 = new Binary(4),
                    struct7 = new Binary(4),
                    struct8 = new Binary(4),
                    err     = new Binary(4);
    boolean         currentState;
    ASCIIIO                         file;
    ;

    if (AA_TradeSetup::find(winapi::getComputerName()))
    {

    file = new ASCIIIO("c:\\scanerData.txt", "W");
    file.write("");

    func    = new DLLFunction(dll, 'stdCheckComm');
    func.arg();
    func.call();
    /*
    func    = new DLLFunction(dll, 'stdCloseComm');
    func.arg();
    res = func.call();
    */
    func    = new DLLFunction(dll, 'stdOpenComm');
    func.returns(ExtTypes::DWord);
    func.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord);//, ExtTypes::DWord);
      res = func.call(AA_TradeSetup::find(winapi::getComputerName()).TSDPort, AA_TradeSetup::find(winapi::getComputerName()).TSDSpeed, 1);

    if (res)
     {
        func    = new DLLFunction(dll, 'stdGetCurrentState');
        func.returns(ExtTypes::DWord);
        func.arg();//
        currentState = func.call();
        if (currentState)
         {
            func    = new DLLFunction(dll, 'stdGetDataCount');
            func.returns(ExtTypes::DWord);
            func.arg(ExtTypes::DWord);
            rr = func.call(0);
            if (rr)
             {
              func    = new DLLFunction(dll, 'stdDocToFile');
              func.returns(ExtTypes::DWord);
              func.arg(ExtTypes::DWord, ExtTypes::String);
              res = func.call(0,'c:\\scanerData.txt');

                func    = new DLLFunction(dll, 'stdGetDataCount');
                func.returns(ExtTypes::DWord);
                func.arg(ExtTypes::DWord);
                rr = func.call(0);
                if (rr)
                {
                  func    = new DLLFunction(dll, 'stdClearDoc');
                  func.returns(ExtTypes::DWord);
                  func.arg(ExtTypes::DWord);
                  res = func.call(0);
                }

              func    = new DLLFunction(dll, 'stdCloseComm');
              func.returns(ExtTypes::DWord);
              func.arg();
              res = func.call();

              dll.finalize();
             } // if rr
             else
             {
                  func    = new DLLFunction(dll, 'stdCloseComm');
                  func.returns(ExtTypes::DWord);
                  func.arg();
                  res = func.call();
                  dll.finalize();
             }
         }
         else
         {
         Info(strfmt('%1',
                    (currentState ? "Готов к работе" : "Не в режиме главного меню")));
      //  slava  return false; // Alex, 09/02-06 -->
         }
     }
     else
     {
     Info(strfmt('%1',
               "Не могу открыть порт"));
 // slava    return false; // Alex, 09/02-06 -->
     }
    }
return true;
}
Приемрно так. Как-то работает. Класс я Вам выслал по почте.
__________________
С уважением, Вячеслав.
Старый 22.12.2006, 13:15   #4  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
не совсем понятно зачем используете DLL. Можно ведь через COM объекты. На какую почту высылали класс?
Старый 22.12.2006, 13:20   #5  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
не совсем понятно зачем используете DLL. Можно ведь через COM объекты
Да, там по-моему был хороший интерфейс
Код:
 WReader = new COM('WREADER.Application');
Старый 22.12.2006, 13:25   #6  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
не совсем понятно зачем используете DLL. На какую почту высылали класс?
Исторически сложилось
__________________
С уважением, Вячеслав.
Старый 22.12.2006, 14:08   #7  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
а проверяли что возвращают каждые new DLLFunction(dll, 'stdOpenComm');
Узнайте где результат не вернется
Старый 22.12.2006, 14:11   #8  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
какой программой получали описания функций в библиотеке?
Старый 22.12.2006, 14:24   #9  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
а проверяли что возвращают каждые new DLLFunction(dll, 'stdOpenComm');
Узнайте где результат не вернется
У меня-то все работает. объект инициализируется нормально. CurrentState = true;
Не работает, почему-то, у автора темы.

Цитата:
Сообщение от Eldar9x Посмотреть сообщение
какой программой получали описания функций в библиотеке?
Был текстовый файл с описанием вызовов, скачивал с сайта производителя.
__________________
С уважением, Вячеслав.
Старый 22.12.2006, 14:33   #10  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
на производителя бы не надеялся... Вот например пользуюсь для этой цели Dependency Walker
Старый 22.12.2006, 14:39   #11  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
на производителя бы не надеялся...
Да нет, кстати. Вроде нареканий не было. Кстати, спасибо George Nordic за своевременную подсказку, когда были проблемы с терминалом
__________________
С уважением, Вячеслав.
Старый 22.12.2006, 14:58   #12  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
на производителя бы не надеялся... Вот например пользуюсь для этой цели Dependency Walker
Дико извиняюсь, но каким образом он может дать описиние функций и список их параметров?
__________________
Axapta v.3.0 sp5 kr2
Старый 22.12.2006, 15:18   #13  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Дико прощаю , но про параметры вроде ничего не говорил, или у меня склероз?
Старый 22.12.2006, 15:21   #14  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
какой программой получали описания функций в библиотеке?
Или вы под описанием функций имеете в виду что-то другое?
__________________
Axapta v.3.0 sp5 kr2
Старый 22.12.2006, 15:47   #15  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
все доступные функции
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
«Обрезание» длинных штрих-кодов gl00mie DAX: Программирование 7 17.10.2008 18:16
Подвисает сканер штрих-кодов KingPeas DAX: Программирование 0 10.10.2008 09:01
AX 4.0 + сканеры штрих кодов Vitals DAX: Прочие вопросы 11 20.06.2008 17:35
Нужен совет по сканеру штрих-кодов slava09 DAX: Программирование 5 27.01.2005 03:11
Еще раз о подключении сканнера штрих кодов Alks DAX: Программирование 43 20.08.2004 15:04

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:30.