AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 06.06.2007, 21:06   #1  
EVGL ist offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4.445 / 3001 (0) ++++++++++
Registriert seit: 09.07.2002
Ort: 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.
  • иллюстрирует использование всего упомянутого на простом работающем приложении: интеграция с весами

Klicken Sie auf die Grafik für eine größere Ansicht

Name:	COMMIntegrationPrj.GIF
Hits:	626
Größe:	21,8 KB
ID:	2694

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

Geändert von EVGL (08.08.2007 um 17:01 Uhr)
This post has been rated by: mazzy (5), mmm (1), Garic (2), Alex_K (1), denny (1), jasper (1), konopello (1), gl00mie (4), madm (1), Peppi (1).
Alt 10.06.2007, 10:18   #2  
Alex_K ist offline
Alex_K
Участник
 
531 / 36 (3) +++
Registriert seit: 07.02.2003
А вот такой вопрос: получится ли использовать это решение для работы с последовательным портом из сессии терминального клиента? Естественно, если в сессии используется разделение клиентских последовательных портов.
Alt 10.06.2007, 14:52   #3  
EVGL ist offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4.445 / 3001 (0) ++++++++++
Registriert seit: 09.07.2002
Ort: Parndorf, AT
Zitat:
Zitat von Alex_K Beitrag anzeigen
А вот такой вопрос: получится ли использовать это решение для работы с последовательным портом из сессии терминального клиента? Естественно, если в сессии используется разделение клиентских последовательных портов.
Да. Это решение я сделал для английского клиента и тестировал все в удаленном режиме через RDP.
Alt 10.06.2007, 17:15   #4  
EVGL ist offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4.445 / 3001 (0) ++++++++++
Registriert seit: 09.07.2002
Ort: Parndorf, AT
И еще одно замечание по поводу MSCOMM32.ocx: причина того, что компонент все еще используется в средствах разработки Micrisoft, состоит в том, что в .NET отсутствуют соответствующие классы. Разумеется, все можно целиком запрограммировать только на вызовах WinAPI, и это уже сделано на VB.Net:

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

Только занятие это довольно трудоемкое. Класс Rs232 в этом проекте содержит 850 строчек. На X++ будет определенно больше в связи со сложностями вызова функций Kernel32. Сомнительно, чтобы клиент стал платить за подобное упражнение в программировании.
Alt 27.06.2007, 06:34   #5  
Gloo ist offline
Gloo
Участник
 
1 / 14 (1) ++
Registriert seit: 19.07.2006
Zitat:
Zitat von EVGL Beitrag anzeigen
И еще одно замечание по поводу MSCOMM32.ocx: причина того, что компонент все еще используется в средствах разработки Micrisoft, состоит в том, что в .NET отсутствуют соответствующие классы. Разумеется, все можно целиком запрограммировать только на вызовах WinAPI, и это уже сделано на VB.Net:
Пардон, но ведь в .Net есть класс System.IO.Ports.SerialPort чем он не устраивает?
This post has been rated by: EVGL (4).
Alt 27.06.2007, 11:07   #6  
konopello ist offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Registriert seit: 08.11.2005
Ort: Минск
Респект полезная фича.
This post has been rated by: EVGL (5).
Alt 27.06.2007, 11:53   #7  
EVGL ist offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4.445 / 3001 (0) ++++++++++
Registriert seit: 09.07.2002
Ort: Parndorf, AT
Zitat:
Zitat von Gloo Beitrag anzeigen
Пардон, но ведь в .Net есть класс System.IO.Ports.SerialPort чем он не устраивает?
О! Беру слова обратно (не знаток .NET). Та статья, которую я нарыл, была написана, наверное, до .NET Framework 2.0. Действительно, тогда в версии 4.0 можно проект еще элегантнее реализовать.
Alt 27.11.2008, 18:14   #8  
Peppi ist offline
Peppi
Участник
 
31 / 11 (1) +
Registriert seit: 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 дает мне именно этот путь. А как должно быть?
Alt 28.11.2008, 10:35   #9  
Peppi ist offline
Peppi
Участник
 
31 / 11 (1) +
Registriert seit: 22.10.2008
Хм, разобралась. Просто почему-то регистрация не прошла корректно. Сегодня еще раз попробовала - нормально зарегистрировалось. В любом случае, спасибо за пример
Alt 19.03.2009, 14:15   #10  
Norov ist offline
Norov
Участник
 
4 / 10 (1) +
Registriert seit: 22.08.2006
Прошу прощения а можно поподробнее как произвести регестрацию mscomm32, уж мы его и так и сяк пробовали регестрировать, а он ни как. И ещё может ли сам mscomm32 быть каким нить кривым и из за этого не работать, потому что когда его регистрируем пишет что всё ничтяк и всё в реестре прописано, а класс продолжает ругаться, заранее спасибо.
Alt 18.03.2014, 15:04   #11  
Player1 ist offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Registriert seit: 21.04.2008
Zitat:
Zitat von Peppi Beitrag anzeigen
Хм, разобралась. Просто почему-то регистрация не прошла корректно. Сегодня еще раз попробовала - нормально зарегистрировалось. В любом случае, спасибо за пример
Zitat:
Zitat von Norov Beitrag anzeigen
Прошу прощения а можно поподробнее как произвести регестрацию mscomm32, уж мы его и так и сяк пробовали регестрировать, а он ни как. И ещё может ли сам mscomm32 быть каким нить кривым и из за этого не работать, потому что когда его регистрируем пишет что всё ничтяк и всё в реестре прописано, а класс продолжает ругаться, заранее спасибо.
Чет тоже помучался, ответ нашел тут http://forum.infostart.ru/forum9/topic5917/
Stichworte
com port, faq, rs232

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 02:32 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.