Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] ПО для терминала сбора данных

Ответить
Настройки темы
.NET - [решено] ПО для терминала сбора данных

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте.

Есть терминалы сбора данных CipherLab CP30, подключаются по wi-fi, запускается RDP сеанс, внутри которого работает обработка 1С. Всё работает.

Я тут решил в целях самообразования, возможно оптимизации работы (если получится) написать своё ПО, которое будет выполнять те же операции, что и обработка в 1С (но без RDP, лицензий на 1С и лицензий на RDP). Мой уровень познания .NET и C# основан на университете и никаких сложных проектов я не создавал.

Нашёл библиотеки с SDK_API для этого терминала; нашёл инструкцию с описанием классов и их применения.

Сделал проект, закодил пару кнопок, закинул в терминал - работает. Инициализировал ридер штрихкодов, получилось при помощи обработки таймера считать данные (понимаю что это костыль, просто пробовал).

На одной из первых страниц инструкции описан классс:
Код: Выделить весь код
    public class MsgWindow : MessageWindow
    {
        int bl = 0;
        string tmp;

        protected override void WndProc(ref Message msg)
        {
            if (msg.Msg == decodeMsg)
            {

                switch (msg.WParam.ToInt32())
                {
                    case 7: //Barcode
                        bl = Reader.ReaderEngineAPI.GetDecodeData(ref tmp, 5000);
                        bl = Reader.ReaderEngineAPI.GetOutputRecord(DC_READER_BC, ref tmp);
                        break;

                    default:
                        break;
                }

                base.WndProc(ref msg);

            }
        }
    }
Как я понял из описания, это класс, наследуемый от MessageWindow, и в нём происходит перехват сообщения DC_READER_BC, которое является идентификатором считанного штрих-кода. Т.е. при считывании штрих кода создаётся сообщение, а этот класс перехватывает это сообщение.

Этот код не работает, т.к. нет некоторых параметров (да и не понятно откуда им взяться). В конце инструкции есть глава Sample Code, в которой этот же класс немного расширен, и приведён к более-менее рабочему виду, но в нём снова встречаются пункты, в которых я не могу разобраться:

Цитата:
First, register the WM_DECODEDATA message.
For example,
Код: Выделить весь код
decodeMsg = Win32API.RegisterWindowMessage("WM_DECODEDATA" ) ;
where decodeMsg is the message identifier to be broadcasted when a scan engine decodes data.
тут предлагается зарегистрировать сообщение с идентификатором WM_DECODEDATA. Но я не могу найти и понять что нужно подключить в using чтобы стала доступно Win32API?

Немного ниже есть такой кусочек кода:

Код: Выделить весь код
public class Win32API { 
   [DllImport("coredll.dll", SetLastError = true)] 
   public static extern uint RegisterWindowMessage(string lpString);
}
Вроде бы вот он класс Win32API, но откуда разработчики взяли этот загадочный coredll.dll?

Пожалуйста помогите разобраться.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 10:16, 04-09-2014

 

Аватара для User001

Ветеран


Сообщения: 740
Благодарности: 116

Профиль | Отправить PM | Цитировать


Цитата Tonny_Bennet:
Но я не могу найти и понять что нужно подключить в using чтобы стала доступно Win32API? »
Так класс же SDK-шниками и реализован (вы далее пишете). Смотрите, где он реализован и подключайте.
Цитата Tonny_Bennet:
Вроде бы вот он класс Win32API, но откуда разработчики взяли этот загадочный coredll.dll? »
А этой dll в папке с SDK нету? Ссылка говорит, что registerwindowmessage есть в user32, попробуйте ее. А вообще, Win32API похоже реализован так.
Про coredll.dll гляньте это.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:22, 04-09-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


User001, даже не знаю что написать . Я ещё раз переписал листинг программы и всё заработало. Как я понял coredll.dll это библиотека системы, а не .net. Сейчас всё запускается (но пока не работает). Лезут ошибки при инициализации ридера и т.д.

Ещё есть вопрос по поводу отладки. При написании приложений под мобильные устройства программа запускается в одном из эмуляторов, у меня (как наверное у всех в VisualStudio 2008) это какое-то подобие Windows PDA. Программу я пишу под терминал сбора данных. Скажите можно ли как-нибудь добавить в список эмулятор этого устройства?

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 09:36, 05-09-2014 | #3


Аватара для User001

Ветеран


Сообщения: 740
Благодарности: 116

Профиль | Отправить PM | Цитировать


Цитата Tonny_Bennet:
Скажите можно ли как-нибудь добавить в список эмулятор этого устройства? »
Я особо WM не интересовался. Может пригодится и для WM 6.5 хелп (VS2005), там раздел раздел Mimicking exotic devices, в котором аж разрешение экрана поменять можно .
А про само устройство тема есть, которая ведет к саппорту.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:02, 06-09-2014 | #4


Аватара для User001

Ветеран


Сообщения: 740
Благодарности: 116

Профиль | Отправить PM | Цитировать


Кстати, Пишем под ТСД.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:38, 08-09-2014 | #5


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Программы для Windows CE наша компания писала на Sys Dev Kalipso (база данных, файлы, вебсервисы, коммуникации с различными интерфейсами и многое другое без заморочек.., единственный минус в том, что она платная). Демоверсию одного из наших проектов можно посмотреть по ссылке https://www.mercoded.com/id/terminal...-sbora-dannykh (в этом проекте предусмотрена возможность интеграции с 1с или другой учётной системой) . Но недавно наша компания начала торговать китайскими ТСД с ОС Andrpid (Caribe) информацию по ним можно посмотреть у нас на сайте https://www.mercoded.com/. Существущие проекты с небольшими изменениями перенесли на эти девайсы и теперь поддерживаем в основном проекты на Android. Программы для них ( можно на Kalipso писать, можно на беспланой IDE Android Studio, сами девайсы дешёвые и шустрые, наша компания даёт по ним полную поддержку, есть все необходимые SDK, поддерживаем связь с производителем.

Отправлено: 12:07, 16-05-2022 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] ПО для терминала сбора данных

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Терминалы сбора данных в режиме On-Line Tonny_Bennet Хочу все знать 10 05-09-2014 13:23
Debian/Ubuntu - [решено] Linux - настройка rsyslog для сбора логов с удаленных устройств snake-as Общий по Linux 7 20-09-2013 05:57
Посоветуйте ноутбук для сбора пакетов для взлома wifi drkrol Хочу все знать 5 28-05-2013 08:07
CNN инвестирует в сервис сбора данных OSZone News Новости информационных технологий 0 13-12-2009 02:30
[решено] Утилита для сбора сведений об установленных обновлениях системы Davidoff BoS Microsoft Windows 2000/XP 3 01-08-2006 07:26




 
Переход