Показано с 1 по 10 из 1807

Тема: Вопросы по MasterSCADA 4D

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,031

    По умолчанию

    Ну это не совсем ко мне, просто прочитал, что вам байтами оперировать надо в C# В вашей строке видимо еще какой-то параметр и он уже фактически double.
    А так, поймать скобки, и в массив строк, первые 3 (0-2) ячейки массива целые числа, последнее double, после обработки все обратно и в строку.

    и это можно сделать средствами скрипта C# не прибегая еще и к ST или на чем вы там последнее написали.

  2. #2
    Пользователь
    Регистрация
    16.02.2018
    Адрес
    Краснодар
    Сообщений
    23

    По умолчанию

    Идею понял, но пока мои познания C# невелики, горожу костыли на ST )). Эх, без посимвольного парсинга не обойтись. Задача облегчается тем, что формат стабильный, можно сразу отрезать постоянную начальную и конечную часть строки 'rgba(' и ')' ,а затем расклеивать оставшееся по признаку запятой. В таком случае и преобразование в HEX не потребуется, оно там в десятичном представлении.
    Всё было бы гораздо проще, если бы в MasterScada 4D библиотеку OSCAT.BASIC реализовали в полном объёме, а не избирательно.

  3. #3
    Пользователь
    Регистрация
    16.02.2018
    Адрес
    Краснодар
    Сообщений
    23

    По умолчанию

    Работает, только вот RedOUT где-то подвисает посередине.. Хотя, вроде всё по фен-шую, и следующие строки находятся нормально, а вот первая почему-то хромает.

    sRGBA := OBJECT_TO_STRING(RGBA_IN);
    IF LEN(sRGBA) > 0 AND FIND(IN1:= sRGBA, IN2:= 'rgba') > 0 THEN
    sRGBA := DELETE(IN:= sRGBA, L:= 5, P:= 1);
    sRed := LEFT(IN:= sRGBA, L:= (FIND(IN1:= sRGBA, IN2:= ',')-1));
    RedOUT := STRING_TO_USINT(sRed);
    sRGBA := DELETE(IN:= sRGBA, L:= FIND(IN1:= sRGBA, IN2:= ','), P:= 1);

    sGreen := LEFT(IN:= sRGBA, L:= (FIND(IN1:= sRGBA, IN2:= ',')-1));
    GreenOUT := STRING_TO_USINT(sGreen);
    sRGBA := DELETE(IN:= sRGBA, L:= FIND(IN1:= sRGBA, IN2:= ','), P:= 1);

    sBlue := LEFT(IN:= sRGBA, L:= (FIND(IN1:= sRGBA, IN2:= ',')-1));
    BlueOUT := STRING_TO_USINT(sBlue);
    sRGBA := DELETE(IN:= sRGBA, L:= FIND(IN1:= sRGBA, IN2:= ','), P:= 1);

    sAlpha := LEFT(IN:= sRGBA, L:= (FIND(IN1:= sRGBA, IN2:= ')')-1));
    AlphaOUT := REAL_TO_USINT(TRUNC(STRING_TO_REAL(sAlpha)*255));
    END_IF

    Осталось Всё это в цикл завернуть и работу с элементами массива.
    Последний раз редактировалось FireLizzard; 05.12.2022 в 13:14.

  4. #4

    По умолчанию

    Цитата Сообщение от FireLizzard Посмотреть сообщение
    Работает, только вот RedOUT где-то подвисает посередине.. Хотя, вроде всё по фен-шую, и следующие строки находятся нормально, а вот первая почему-то хромает.

    sRGBA := OBJECT_TO_STRING(RGBA_IN);
    IF LEN(sRGBA) > 0 AND FIND(IN1:= sRGBA, IN2:= 'rgba') > 0 THEN
    sRGBA := DELETE(IN:= sRGBA, L:= 5, P:= 1);
    sRed := LEFT(IN:= sRGBA, L:= (FIND(IN1:= sRGBA, IN2:= ',')-1));
    RedOUT := STRING_TO_USINT(sRed);
    sRGBA := DELETE(IN:= sRGBA, L:= FIND(IN1:= sRGBA, IN2:= ','), P:= 1);

    sGreen := LEFT(IN:= sRGBA, L:= (FIND(IN1:= sRGBA, IN2:= ',')-1));
    GreenOUT := STRING_TO_USINT(sGreen);
    sRGBA := DELETE(IN:= sRGBA, L:= FIND(IN1:= sRGBA, IN2:= ','), P:= 1);

    sBlue := LEFT(IN:= sRGBA, L:= (FIND(IN1:= sRGBA, IN2:= ',')-1));
    BlueOUT := STRING_TO_USINT(sBlue);
    sRGBA := DELETE(IN:= sRGBA, L:= FIND(IN1:= sRGBA, IN2:= ','), P:= 1);

    sAlpha := LEFT(IN:= sRGBA, L:= (FIND(IN1:= sRGBA, IN2:= ')')-1));
    AlphaOUT := REAL_TO_USINT(TRUNC(STRING_TO_REAL(sAlpha)*255));
    END_IF

    Осталось Всё это в цикл завернуть и работу с элементами массива.
    Вот еще посмотрите,
    набросал
    Изображения Изображения
    Вложения Вложения

  5. #5
    Пользователь
    Регистрация
    16.02.2018
    Адрес
    Краснодар
    Сообщений
    23

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Вот еще посмотрите,
    набросал
    Благодарю, часть решения понятна, применил. Дочитался в хелпе, что "C# программы поддерживается только в тех версиях исполнительной системы, которые работают под ОС Windows." интересно, а как оно будет себя вести на ПЛК110 при обращении с мобильных клиентов (Телефоны)? Там же .NET и не пахло..

  6. #6

    По умолчанию

    Цитата Сообщение от FireLizzard Посмотреть сообщение
    Благодарю, часть решения понятна, применил. Дочитался в хелпе, что "C# программы поддерживается только в тех версиях исполнительной системы, которые работают под ОС Windows." интересно, а как оно будет себя вести на ПЛК110 при обращении с мобильных клиентов (Телефоны)? Там же .NET и не пахло..
    Это действительно так :"C# программы поддерживается только в тех версиях исполнительной системы, которые работают под ОС Windows."?

Похожие темы

  1. Вопросы по СИ-8
    от aleksandr87 в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 11.06.2016, 18:56
  2. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 14:39
  3. MasterScada v3.6 Основные вопросы
    от colorprint2008 в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 24.12.2013, 15:50
  4. конвертация проекта из Masterscada 3.5 в Masterscada 3.4
    от Сергей_SPB в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 01.04.2013, 16:56
  5. Вопросы по трендам MasterSCADA
    от 42ia в разделе Master SCADA 3
    Ответов: 9
    Последнее сообщение: 26.06.2012, 10:58

Ваши права

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