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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.06.2007, 21:06   #1  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
COM / RS232 simple integration project
Чтобы уважаемые коллеги не изобретали каждый раз велосипед, прилагаю типовой проект интеграции Аксапта с внешним устройством через COM-порт.

COMMIntegrationBasic.xpo

Фичи:
  • сделано для версии 3.0
  • использует компонент MSCOMM32.ocx из состава Visual Basic.
  • способен копировать компонент с сервера, устанавливать ее и проставлять лицензии, реализуя SysFileDeployer (об особенностях лицензирования и т.д. хорошо написано здесь: The MSComm control MSCOMM32.OCX)
  • содержит класс-обертку компонента на X++
  • предусматривает таблицу с настройками соединения (baud rate etc.), позволяющую работать с несколькими клиентами или неск. портами на одном клиенте
  • реализует более высокоуровневый класс SF_MSCommApplication (см. рис.), работающий в режиме pull, т.е. не рагирущий на прерывания, а принудительно считывающий данные по нажатию кнопки. В этом режиме не нужны формы с ActiveX.
  • иллюстрирует использование всего упомянутого на простом работающем приложении: интеграция с весами

Нажмите на изображение для увеличения
Название: COMMIntegrationPrj.GIF
Просмотров: 601
Размер:	21.8 Кб
ID:	2694

Приятного использования!

Последний раз редактировалось EVGL; 08.08.2007 в 17:01.
За это сообщение автора поблагодарили: mazzy (5), mmm (1), Garic (2), Alex_K (1), denny (1), jasper (1), konopello (1), gl00mie (4), madm (1), Peppi (1).
Старый 10.06.2007, 10:18   #2  
Alex_K is offline
Alex_K
Участник
 
531 / 36 (3) +++
Регистрация: 07.02.2003
А вот такой вопрос: получится ли использовать это решение для работы с последовательным портом из сессии терминального клиента? Естественно, если в сессии используется разделение клиентских последовательных портов.
Старый 10.06.2007, 14:52   #3  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от Alex_K Посмотреть сообщение
А вот такой вопрос: получится ли использовать это решение для работы с последовательным портом из сессии терминального клиента? Естественно, если в сессии используется разделение клиентских последовательных портов.
Да. Это решение я сделал для английского клиента и тестировал все в удаленном режиме через RDP.
Старый 10.06.2007, 17:15   #4  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
И еще одно замечание по поводу MSCOMM32.ocx: причина того, что компонент все еще используется в средствах разработки Micrisoft, состоит в том, что в .NET отсутствуют соответствующие классы. Разумеется, все можно целиком запрограммировать только на вызовах WinAPI, и это уже сделано на VB.Net:

vb.net - framework - using the com port in vb.net.rar

Только занятие это довольно трудоемкое. Класс Rs232 в этом проекте содержит 850 строчек. На X++ будет определенно больше в связи со сложностями вызова функций Kernel32. Сомнительно, чтобы клиент стал платить за подобное упражнение в программировании.
Старый 27.06.2007, 06:34   #5  
Gloo is offline
Gloo
Участник
 
1 / 14 (1) ++
Регистрация: 19.07.2006
Цитата:
Сообщение от EVGL Посмотреть сообщение
И еще одно замечание по поводу MSCOMM32.ocx: причина того, что компонент все еще используется в средствах разработки Micrisoft, состоит в том, что в .NET отсутствуют соответствующие классы. Разумеется, все можно целиком запрограммировать только на вызовах WinAPI, и это уже сделано на VB.Net:
Пардон, но ведь в .Net есть класс System.IO.Ports.SerialPort чем он не устраивает?
За это сообщение автора поблагодарили: EVGL (4).
Старый 27.06.2007, 11:07   #6  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Респект полезная фича.
За это сообщение автора поблагодарили: EVGL (5).
Старый 27.06.2007, 11:53   #7  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от Gloo Посмотреть сообщение
Пардон, но ведь в .Net есть класс System.IO.Ports.SerialPort чем он не устраивает?
О! Беру слова обратно (не знаток .NET). Та статья, которую я нарыл, была написана, наверное, до .NET Framework 2.0. Действительно, тогда в версии 4.0 можно проект еще элегантнее реализовать.
Старый 27.11.2008, 18:14   #8  
Peppi is offline
Peppi
Участник
 
31 / 11 (1) +
Регистрация: 22.10.2008
Извияюсь заранее за глупый вопрос...
Пожалуйста, не могли бы вы объяснить, что значит в методе new класса SF_MSComm32:
X++:
void new(COM _com = new COM('{648A5600-2C6E-101B-82B6-000000000014}'))
{
    Object o = _com;
    this = o;
    self = _com;
}
строка '{648A5600-2C6E-101B-82B6-000000000014}'
У меня при попытке запуска ругается на эту строчку,говорит "COM-объект класса "{648A5600-2C6E-101B-82B6-000000000014}" не удалось создать. Убедитесь, что объект был должным образом зарегистрирован на компьютере"
Видимо, не корректна регистрация mscomm32... Я его изначально ручками зарегила в папке Windows/sysem32, сейча команда where mscom32.ocx дает мне именно этот путь. А как должно быть?
Старый 28.11.2008, 10:35   #9  
Peppi is offline
Peppi
Участник
 
31 / 11 (1) +
Регистрация: 22.10.2008
Хм, разобралась. Просто почему-то регистрация не прошла корректно. Сегодня еще раз попробовала - нормально зарегистрировалось. В любом случае, спасибо за пример
Старый 19.03.2009, 14:15   #10  
Norov is offline
Norov
Участник
 
4 / 10 (1) +
Регистрация: 22.08.2006
Прошу прощения а можно поподробнее как произвести регестрацию mscomm32, уж мы его и так и сяк пробовали регестрировать, а он ни как. И ещё может ли сам mscomm32 быть каким нить кривым и из за этого не работать, потому что когда его регистрируем пишет что всё ничтяк и всё в реестре прописано, а класс продолжает ругаться, заранее спасибо.
Старый 18.03.2014, 15:04   #11  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Цитата:
Сообщение от Peppi Посмотреть сообщение
Хм, разобралась. Просто почему-то регистрация не прошла корректно. Сегодня еще раз попробовала - нормально зарегистрировалось. В любом случае, спасибо за пример
Цитата:
Сообщение от Norov Посмотреть сообщение
Прошу прощения а можно поподробнее как произвести регестрацию mscomm32, уж мы его и так и сяк пробовали регестрировать, а он ни как. И ещё может ли сам mscomm32 быть каким нить кривым и из за этого не работать, потому что когда его регистрируем пишет что всё ничтяк и всё в реестре прописано, а класс продолжает ругаться, заранее спасибо.
Чет тоже помучался, ответ нашел тут http://forum.infostart.ru/forum9/topic5917/
Теги
com port, faq, rs232

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
RS232 com port Rimantas DAX: База знаний и проекты 32 01.09.2014 11:42
Kurt Hatlevik: Sneak preview of the WMS E&E Blog bot DAX Blogs 0 20.11.2008 01:10
msdynamicsax: VB script that test the com connector for Dynamics Ax 4.0 Blog bot DAX Blogs 0 25.08.2008 18:05
Kashperuk Ivan: AxPromptDBSync - a simple project that allows to c... Blog bot DAX Blogs 1 06.03.2007 00:33

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

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

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