Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 22

Тема: Обёртка owen_protocol.c для python

  1. #1

    По умолчанию Python библиотека для работы по протоколу ОВЕН

    В библиотеке функций owen_protocol.c, которую можно найти на форуме, реализованы функции для работы по протоколу ОВЕН (вычисление хэшей, кодирование, раскодирование фреймов, преобразование данных). Работы с COM-портами нет, но и не нужно, легко можно реализовать отправку-прием различными методами, тем более, что мне нужно обмениваться через тот же COM-порт с другими устройствами, чего не позволяет делать owen_io.dll.

    Я веду разработку программ для своих задач на языке Python, поэтому и решил сделать для него интерфейс к функциям из owen_protocol.c. В сборке поддерживаются все функции исходной библиотеки, их достаточно по крайней мере для чтения параметров, установку пока делать не пробовал, но думаю, что установка тоже будет работать. Функции библиотеки можно вызывать напрямую, но лучше использовать написанный мною класс для устройств ОВЕН, дающий удобный интерфейс для работы с приборами. Внутри приложенного файла сама библиотека для Python, интерфейсный класс и примеры работы. Обёртка сделана с помощью swig, скомпилирована для python 2.7.3.
    Ссылка на библиотеку
    Ссылка на репозиторий
    Команда для получения последней версии исходников (при помощи программы Apache Subversion):
    svn export http://py-owen-library.googlecode.com/svn/trunk/ py-owen-library-read-only

    Пример кода:
    owen=Owen(None,16)#Создаем устройство по адресу 16
    print 'Hashes:'
    #считаем хэши запросов
    hashROUT=owen.GetHash('r.oUt')
    hashRST=owen.GetHash('r.St')
    hashREAD=owen.GetHash('rEAd')
    print 'Read: ',hashREAD,'Out: ',hashROUT,"State: ",hashRST
    #читаем данные из устройства
    print owen.GetIEEE32(hashREAD)
    print owen.GetDeviceName()
    print owen.GetFirmwareVersion()
    print owen.GetStringByName('dev')

    Добавил класс для работы с ТРМ251 (пока реализовано чтение температуры и мощности), консольный пример работы с библиотекой и пример с использованием графического интерфейса пользователя на основе wxPython.
    Для запуска примеров могут потребоваться библиотеки pySerial и pyWin32.
    Последний раз редактировалось vitug; 07.12.2012 в 22:12. Причина: Доработана библиотека, добавлены примеры, файлы загружены в репозиторий code.google.com

  2. #2

    По умолчанию :)

    Забавно читать

  3. #3

    По умолчанию

    Цитата Сообщение от Dellactuaceax Посмотреть сообщение
    Забавно читать
    Исходный код или сообщение?
    Да, буковок много написал, но как говорится в таких случаях "это мой первый пост, просьба не пинать"

  4. #4

    По умолчанию

    У меня есть ТРМ201 и АС-4. Я могу как-то использовать данный скрипт для своей работы - мне нужно считать 2 параметра из группы LvoP - это SP и PV. Это можно как-то сделать?

    owen=Owen(None,32)#Устройство по адресу 32, Нужно-ли None менять на COM3?

  5. #5

    По умолчанию

    Цитата Сообщение от iKarma Посмотреть сообщение
    У меня есть ТРМ201 и АС-4. Я могу как-то использовать данный скрипт для своей работы - мне нужно считать 2 параметра из группы LvoP - это SP и PV. Это можно как-то сделать?

    owen=Owen(None,32)#Устройство по адресу 32, Нужно-ли None менять на COM3?
    Я обновил файлы библиотеки, добавил примеры работы с портами.
    Вместо None нужно поставить класс, обеспечивающий работу с COM-портом (он должен реализовывать методы write и read). Можно использовать стандартный класс из библиотеки pySerial. В примере есть мой класс, наследник от Serial, в него добавлена возможность протоколирования обмена.
    Для чтения параметров нужно сначала получить их хэши методом
    hash=GetHash(name), где name - точное имя параметра, как оно определено в документации. Затем полученный хэш используется для чтения параметра из устройства, у меня пока реализовано чтение целочисленных параметров и float32 параметров, это функции GetInt(hash,addrOffset) и GetIEEE32(hash,addrOffset).
    Последний раз редактировалось vitug; 04.12.2012 в 02:26.

  6. #6

    По умолчанию

    Я послал Вам в личку сообщение с просьбой привести пример использования Ваших библиотек на языке Python для установки значения произвольного параметра, например, (SP float24). Не могли бы Вы прислать мне пример. Мой адрес: khromushin@mail.ru

  7. #7

    По умолчанию

    Подниму тему. Кто-то занимался развитием библиотеки?
    интересует реализация чтение запись r.OE МУ110-8К float24

  8. #8

    По умолчанию

    вообщем дописал я сам. Я так понимаю, все в основном заточены на пользование готовых закрытых библиотек и мало интересуются кроссплатформой

  9. #9

    По умолчанию

    Можно уточнить, вы библиотеку писали под linux?

  10. #10

    По умолчанию

    python кроссплатформа. единственное отличие это имя компорта

Страница 1 из 3 123 ПоследняяПоследняя

Похожие темы

  1. Обёртка owen_protocol.c для python
    от vitug в разделе Сервисное ПО
    Ответов: 1
    Последнее сообщение: 04.03.2017, 12:01

Ваши права

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