Moxa C++



  • Уважаемые!
    имеет ли кто опыт писания кодов для управления Moxa ? с у частием Qt для всего кроме контроля самой Moxa ?



  • Добрый день.
    Не совсем понятно что вы имеете ввиду. К устройствам Moxa можно подключатся через стандартные интерфейсы "RS232":http://qt-project.org/doc/qt-5/qserialport.html и "Ethernet":http://qt-project.org/doc/qt-5/topics-network-connectivity.html . Но если же вы спрашиваете о протоколах управления Moxa то это уже больше вопрос к самой Moxa. Если протокол известен думаю с реализацией на Qt не будет больших проблем.



  • Вы правы и не правы; например я уже имею thread-конфликт между Qtext Edit и Message_2K (поток Moxa который слушает прибор); также при использовании QUdpSocket, примера BroadcastReceiver этот пример успешно "слушает" сокет, но при этом отваливается утилита Moxa для тестирования, эта утилита до этого работала без проблем; отваливается даже после перезагрузки компа, и разумеется без запуска BroadcastReceiver; если ваша мысль отказаться от библиотек Moxa и переписать все напрямую - вы пожалуй правы ...



  • BroadcastReceiver слушает сокет - в смысле видит что Moxa шлет на комп



  • Нет я не предлагаю отказатся от библиотекк Моха, если есть библиотеки то лучше использовать их. И что за утилита для тестирования Моха?
    Возможно отваливается изза попытки открытия уже занятого BroadcastReceiver ом порта. А насчет thread-конфликта незнаю, надо код смотреть.



  • утилита это:
    http://www.moxa.com/support/download.aspx?type=support&id=3555
    про занятие порта это врядли: перезагрузил, запустил утилиту, не работает, запустил (впервые после перезагрузки) BroadcastКeceiver - он все сообщения видит; замены портов к излечению не привели. Если вы готовы посмотреть ситуацию по TeamViewer, буду вам благодарен; код высылать смысла нет - без прибора он не будет работать



  • перезагрузил - в смысле комп



  • Да конечно, TeamViewer упростит задачу, только надо согласовать время из за различий в часовых поясах.
    Но до этого давайте разберемся по подробнее в вашей задаче.
    Утилита, линк на которую вы мне дали это программа для конфигурирования Моха. Ваша задача написать её аналог или по крайней мере реализовать часть функционала? Какой билиотекой от Моха вы пользуетесь?



  • Просто я не совсем понял что значит
    [quote author="sprokuda" date="1397830617"] ... для управления Moxa ? ... для всего кроме контроля самой Moxa ?[/quote]



  • спасибо за ответ

    1. библиотека есть:
      http://www.moxa.com/support/DownloadFile.aspx?type=support&id=3561
    2. цитата - контороль Moxa осуществялется через стандартные библиотеку Moxa; все остальные потребности реализуются через Qt
    3. то что я делаю можно назвать аналогом утилиты, только GUI будет иметь другие названия, по сфере применения прибора (поворот антенны, авария СВЧ, авария модемов итд итп).


  • Коллега, спасибо за подержку, при перекомпиляции кода под Win7x64 в режиме совместимости с х32 проблема исчезла - ioAdmin видит сообщения после отключения BrodcastReceiver, т.е. когда порт свободен.
    В чем косяк осталось загадкой, проблема была на старом нотебуке с ворованной XP, котороя в остальных случаях работала без сбоев много лет.
    Но если порекоммендуете прогу смотреть свободные порты с человечьим интерфейсом - буду вам весьма признателен.



  • Скорее всего проблема все еще там и если время позволяет лучше конечно разабратся по мере возможности.
    На счет сканера портов, я сам не использовал но может "этот":http://www.radmin.ru/products/previousversions/portscanner.php ?



  • программа которую я пишу имеет направленность "показать возможности", а не создать законченный продукт, если дойдет до продукта - его будет делать профессиональный программист



  • но если вы не против есть еще вопрос - как писать код для общения с прибором по telnet ? прибор есть спутниковый модем, назначение общения - изменять один из параметров (выходную мощность) в соответветсвии с показаниями отдельного цифрового вольтметра. С самим вольтметром все понятно, как написать кусок кода который бы входить по телнету в прибор, автоматически вводил login/password, и отдавал набор комманд на изменение уровня (вид комманд в telnet понятен) и контролировал что соединение живое для последующих комманд



  • уточню вопрос: у меня нет QtTelnet в описании, нет qttelnet.h, весия Qt 4.8.5



  • как их получить?



  • Есть пара библиотек для телнета но я сам ими не пользовался еще:
    "qtelnetperso":http://code.google.com/p/qtelnetperso/
    " qttelnet-2.1 opensource":http://ftp.heanet.ie/mirrors/ftp.trolltech.com/pub/qt/solutions/lgpl/

    Когда мне понадобилось связатся с устройством через телнет я просто отправлял пакеты через TCP. Единственное что я менял в данных это при отправке 0xFF заменял на 0xFFFF а при приеме наоборот.



  • спасибо. скажите, известна ли вам утилита трассировки что проходит через определенный сокет ? просто что бы видет все что ходит по сокету при отладке ?



  • qtelnetperso - запустил, вбил нужный адрес.... но:
    при обращении к прибору ответ приходит как <яэКВАДРАТяэ яэ#яэж'>;
    квадарат в смысле символ который выглядит как 127 символ ASCII;
    при соединении PuTYY/telnet прибор отвечает <sb75 login: >, т.е. так в результате должно получиться после перекодировки.
    Автор испьзует fromLocal8Bit - без успеха;
    PuTYY в режиме Raw отвечает тем же <яэКВАДРАТяэ яэ#яэж'> при обращении к прибору.
    Подскажите как правильно перекодировать ?
    замечу что fromRawData:
    buffer.append(socket->readAll());
    QString text = QString::fromRawData((QChar*)buffer.data(),buffer.size());
    успеха не принес, его результат - сплошные КВАДРАТЫ.

    Посните если есть возможность как корректно перекодировать ?
    ...судя по форуму использовать fromLocal8Bit верно, но у меня не работает ..



  • прошу не читать предыдущий пост, потому что qttelnet-2.1 обратился к прибору корректно, но дальше стало интересней: более 2х комманд не выполняется - на первую приходит корретный ответ, на 2ю - пустота; к примеру : ls 1й раз - все директории корня, ls 2й раз - пустота и тишина, как и на все комманды в дальшейшем; также не заметил чтобы после login приходил бы сигнал loggedIn так как брейкпойт в обработчике сигнала не срабатывает ....


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.