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

Тема: Обсуждение: библиотека OwenStringUtils

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Обсуждение: библиотека OwenStringUtils

    Внимание! Эта тема для обсуждения библиотеки OwenStringUtils. Скачать последнюю версию библиотеки и ознакомиться с изменениями Вы можете в СООТВЕТСТВУЮЩЕЙ теме.

    Мы разработали библиотеку OwenStringUtils, которая содержит наиболее востребованные функции для работы со строками.
    Использовать библиотеку Вы можете в CODESYS 3.5 SP4 и выше.

    1) Конвертация кодировок:

    Часто при программировании в среде разработки CODESYS 3.5 приходится работать с кодировками символов (например: пользователь вводит текст сообщения с визуализации как WSTRING, а модем работает со строками STRING).
    Функции CP1251_TO_UNICODE и UNICODE_TO_CP1251 решают эту проблему и позволяют конвертировать содержимое строк STRING в WSTRING и обратно.
    В этой части библиотека OwenStringUtils полностью перекрывает функционал библиотеки ASCII_TO_UNICOD

    2) Выделение части строки
    Часто необходимо выделить часть строки (например: обработать команду, полученную по SMS).
    Эта задача решается при помощи функций библиотеки Standard: Len, Find, Left, Mid, и Right, но код может получиться достаточно объемным:
    Например, если по SMS получена команда Уставка=25.6
    получить имя команды и значение на языке ST можно таким образом

    Стандартный разбор на теги.png

    На языке CFC, FBD и др. решение задачи будет гораздо более объемным и гораздо менее читабельным.
    С использованием функций Before и After библиотеки OwenStringUtils количество кода (на ST) уменьшиться вдвое.

    Разбор на теги OSU_ST.png

    На CFC решение будет выглядеть не менее элегантно:

    Разбор на теги OSU_CFC.png

    Для того, чтобы облегчить выделение средней части строки между 2мя известными подстроками мы добавили функцию Between.

    Например: для того, чтобы определить текущий баланс на SIM-карте по SMS от оператора:
    «Ваш баланс: 156,30 руб. Ваш Билайн» достаточно будет написать 1 строку в программе:

    Between_OSU_ST.png

    В дальнейшем мы будем дорабатывать библиотеку, добавляя в нее новые функции и функциональные блоки для того, чтобы упростить Вам написание программ.
    Если есть идеи о том, какой функционал стоит добавить в эту библиотеку – смело пишите в этой теме.
    Последний раз редактировалось Осинский Алексей; 23.01.2017 в 15:28.

  2. #2
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,529

    По умолчанию

    Для какого codesys эта библиотека?

  3. #3

    По умолчанию

    Цитата Сообщение от Scream Посмотреть сообщение
    Для какого codesys эта библиотека?
    CODESYS 3.5 SP4 и выше.

  4. #4
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,529

    По умолчанию

    Цитата Сообщение от Осинский Алексей Посмотреть сообщение
    CODESYS 3.5 SP4 и выше.
    Какой процент устройств от овен работает на этом codesys?

  5. #5

    По умолчанию

    Цитата Сообщение от Scream Посмотреть сообщение
    Какой процент устройств от овен работает на этом codesys?
    Вы, вероятно, ведете к тому, что Вам необходим функционал из этой библиотеки в CODESYS 2.3?
    Что именно необходимо?

  6. #6
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,633

    По умолчанию

    Пример выделение баланса хороший, но только возможно для Билайна. У каждого сотового оператора текст сообщения свой и меняет его как хочет, поэтому опираться надо на цифры в сообщении для их выделения и для универсальности, да и то у одного оператора разделителем служит точка у другого запятая (125,25; 125.25).

  7. #7

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    Пример выделение баланса хороший, но только возможно для Билайна. У каждого сотового оператора текст сообщения свой и меняет его как хочет, поэтому опираться надо на цифры в сообщении для их выделения и для универсальности, да и то у одного оператора разделителем служит точка у другого запятая (125,25; 125.25).
    Здесь универсальный для всех операторов способ сложно придумать т.к. формат ответа отличается, цифры могут встречаться
    не только в деньгах, но и в
    • дате,
    • в рекламе, которая может содержаться в ответе,
    • так и быть записаны в формате 16 руб 50 коп.

  8. #8
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    966

    По умолчанию

    Добрый день!
    Планируется ли портировать библиотеку на 2.3?
    Требовалась ASCII_TO_UNICOD в 2.3, пока обходимся без нее.

  9. #9

    По умолчанию

    Добрый день! Подскажите, пожалуйста, какую задачу Вы решаете преобразованием ASCII в UNICODE? Т.к. кодировка UNICODE не поддержана в Codesys v2.3

  10. #10
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    966

    По умолчанию

    Цитата Сообщение от Нелия Зеленова Посмотреть сообщение
    Добрый день! Подскажите, пожалуйста, какую задачу Вы решаете преобразованием ASCII в UNICODE? Т.к. кодировка UNICODE не поддержана в Codesys v2.3
    Добрый день!
    Необходимо осуществлять запись данных на USB, затем вычитываем данные с USB и отправлять на сервер.
    На СПК преобразовывали данные перед записью на SD карту через функцию BYTE_TO_HEXinASCII, а затем сразу читали и отправляли на сервер.

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

Похожие темы

  1. Обсуждение макросов для OWEN Logic
    от Ревака Юрий в разделе Среда программирования OWEN Logic
    Ответов: 563
    Последнее сообщение: 01.11.2020, 14:54
  2. Обсуждение проекта "Умный Дом"
    от александр 64 в разделе СПК2хх
    Ответов: 100
    Последнее сообщение: 01.05.2017, 13:16
  3. обсуждение новостей от разработчиков
    от rovki в разделе Среда программирования OWEN Logic
    Ответов: 57
    Последнее сообщение: 18.10.2016, 21:46
  4. Про библиотеки
    от aven в разделе ПЛК1хх
    Ответов: 26
    Последнее сообщение: 22.04.2016, 00:19
  5. Обсуждение конкурентов
    от vladimir_prg в разделе Трёп (Курилка)
    Ответов: 2
    Последнее сообщение: 23.04.2013, 11:14

Ваши права

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