Перейти к содержанию
    

а почему так нельзя?

Можно, но такой вариант сложно масштабируем. Если делать в таком виде, то как Вы представляете себе решение для вашего же примера: (param1 && input1) || (param2 && (input2 || input3)) ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Warning: :bb-offtopic:

мы слышим какие вопросы вы задаете и как реагируете на предложенные решения тут. Так что про докторскую(или хотя-бы про минимально научный склад ума) мысль даже не закрадывается(по крайней мере у меня)...

Видео с курилки в студию, разберем, оценим на досуге )))))))))

вы не объясняйте какой я дурак - вы покажите какой вы умный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я хочу по входному условию установить выходное условие - назовем это задачей. причем задачи надо хранить в памяти. включили питание - побежали задачи. теперь представте есть таких десять задач со всякими входными и выходными условиями. и все они в цикле в рантайм проверяются.

Странно. Задача подпадает под описание PLC, так и используйте PLC. Зачем изобретать еще что-то? Среды разработки для PLC разрабатывали и отлаживали десятилетиями, чтобы вот так, легко и непринужденно загружать и выполнять по 10 задач в реалтайме. Причем под это еще придумали и стандартизировали 5 языков программирования, чтобы каждый программист и непрограммист мог писать проги так, как ему нравится. Ваш синтаксис это нечто среднее между синтаксисом IL и ST.

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно, но такой вариант сложно масштабируем. Если делать в таком виде, то как Вы представляете себе решение для вашего же примера: (param1 && input1) || (param2 && (input2 || input3)) ?

о! вот в этом вся загвоздка! вот это я и пытаюсь решить. не то чобы я был зациклен на моей имплиментации. просто других альтернатив нет пока.

я думал сделать такую структуру

struct sGroupResults
{
    uint8_t result;
    uint8_t resLogic;

};
struct sConditionGroup
{
    struct sGroupResults groupResults[10];
    uint8_t groupLogic;

};

struct sTaskCondition
{
    struct sConditionGroup condGroup[MAX_COND_GROUPS];
};

и тогда условие

(param1 && input1) || (param2 && (input2 || input3))

расположиться так

sTaskCondition.condGroup[0].groupResults[0].result = param 1;
sTaskCondition.condGroup[0].groupResults[0].resLogic = AND;
sTaskCondition.condGroup[0].groupResults[1].result = input 1;
sTaskCondition.condGroup[0].groupResults[1].resLogic = NONE;
sTaskCondition.condGroup[0].groupLogic = OR;

sTaskCondition.condGroup[1].groupResults[0].result = param 2;
sTaskCondition.condGroup[1].groupResults[0].resLogic = NONE;
sTaskCondition.condGroup[1].groupLogic = AND;

sTaskCondition.condGroup[2].groupResults[0].result = input 2;
sTaskCondition.condGroup[2].groupResults[0].resLogic = OR;
sTaskCondition.condGroup[2].groupResults[1].result = input 3;
sTaskCondition.condGroup[2].groupResults[1].resLogic = NONE;
sTaskCondition.condGroup[2].groupLogic= NONE;

вопрос как в проверке условий объяснить что sTaskCondition.condGroup[0]. groupResults[0].result это param 1

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут уже советовали посмотреть варианты реализации Форт VM (виртуальных машин) готовых хоть C хоть ASM хоть как то ещё :)

Может не стоят эти муки творчества затраченных на них усилий? :smile3046:

Какое железо, кстати, используется?

 

P.S. На диалекте Форт языка есть PLC контроллеры ForthLogic Техническая информация

Программирование на языке ForthLogic (PDF, ~4Mb)

(Правда большая часть это копипаст из книги Баранова, Ноздрунова "Форт и его реализации", но есть и оригинальные идеи в языке для данныхконтроллеров)

Изменено пользователем Kopa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут уже советовали посмотреть варианты реализации Форт VM (виртуальных машин) готовых хоть C хоть ASM хоть как то ещё :)

Может не стоят эти муки творчества затраченных на них усилий?

Какое железо, кстати, используется?

 

P.S. На диалекте Форт языка есть PLC контроллеры ForthLogic Инструкция по программированию на языке ForthLogic™

(Правда большая часть это копипаст из книги Баранова, Ноздрунова "Форт и его реализации", но есть и оригинальные идеи в языке для данныхконтроллеров) :smile3046:

Железо STM32F107VC. не думаю что у меня хватит сил реализовать Форт VM.

 

давайте разделим задачу на подзадачи

пойти проверить состояние входных пинов - смешно правда?

пойти по адресу проверить переменную - больше, меньше установленного лимита - просто, вы не находите?

что нам осталось? - увязать логику? - И с этим ИЛИ с тем и для этого мы будем тянуть фреймворки и виртуальные машины? ребята да вы что?

сравнить два факинг входных пина и два факинг параметра, и сделать И , ИЛИ между ними?

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Железо STM32F107VC. не думаю что у меня хватит сил реализовать Форт VM.

Допиливайте на своё усмотрение любые готовые для STM32 (mecrisp и др.) или есть уже коммерческие самособирающиеся из исходников для STM32 (VFX от MPE c кодовым ограничением на 64Kб что по меркам Форт систем достаточно много даже если полвину займёт полная Форт система)

VFX от МPE по их исходникам запустил на STM32L100 Discovery самостоятельно.

Или такой ресурс SwiftX Embedded Systems Development Tools

Был бы Ваш камень, то это тоже меня не остановило бы от "заливки" в него Форт системы. :)

 

 

P.S. Полезный действующий форумный ресурс Рускоязычных Форт пользователей

Матчасть у Форт систем не сложная. Форт почти всегда без фреймворков (т.к. сам самодостаточен при его использовании)

Всяких реализаций FVM СОТНИ!!! и разных схем решений.

Может Вашим идеям будет созвучен такой "грандиозный" фейковый трактат КОМЛОГИЯ

Изменено пользователем Kopa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

то нам осталось? - увязать логику? - И с этим ИЛИ с тем и для этого мы будем тянуть фреймворки и виртуальные машины?

ну дык вперёд. задача-то плёвая.

 

разговор с вами - это как в анекдоте: "папа, а где море?".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну дык вперёд. задача-то плёвая.

 

разговор с вами - это как в анекдоте: "папа, а где море?".

задача действительно плевая. для сильных спецов.

 

Допиливайте на своё усмотрение любые готовые для STM32 (mecrisp и др.) или есть уже коммерческие самособирающиеся из исходников для STM32 (VFX от MPE c кодовым ограничением на 64Kб что по меркам Форт систем достаточно много даже если полвину займёт полная Форт система)

VFX от МPE по их исходникам запустил на STM32L100 Discovery самостоятельно.

Или такой ресурс SwiftX Embedded Systems Development Tools

Был бы Ваш камень, то это тоже меня не остановило бы от "заливки" в него Форт системы. :)

 

 

P.S. Полезный действующий форумный ресурсРускоязычных Форт пользователей

Матчасть у Форт систем не сложная. Форт почти всегда без фреймворков (т.к. сам самодостаточен при его использовании)

Всяких реализаций FVM СОТНИ!!! и разных схем решений.

а можно из СОТНИ!!! хоть одну готовую? одну...из СОТНИ!!!.

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если парсер у вас есть, то сядьте и напишите за вечер типа il-интерпретатор

а без парсера можно писать и в кодах

переменные в стек, указатель стека, указатель инструкции, регистр состояния

 

программа получится, например, такая:

 

положить в стек номер порта

читать порт

положить в стек константу

сравнить

положить в стек адрес перехода

если больше переход

положить в стек номер порта

положить в стек константу

записать в порт

положить в стек адрес перехода

безусловный переход

 

делов-то

 

программу можно хранить во флеше мк или заливать с пк каждый раз в озу

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если парсер у вас есть, то сядьте и напишите за вечер типа il-интерпретатор

а без парсера можно писать и в кодах

переменные в стек, указатель стека, указатель инструкции, регистр состояния

 

программа получится, например, такая:

 

положить в стек номер порта

читать порт

положить в стек константу

сравнить

положить в стек адрес перехода

если больше переход

положить в стек номер порта

положить в стек константу

записать в порт

положить в стек адрес перехода

безусловный переход

 

делов-то

 

программу можно хранить во флеше мк или заливать с пк каждый раз в озу

вы понимаете...я уже тут говорил...советы такого типа они очень абстрактны - как интерфейсы в С#.

так и я умею. столько интерфейсов напишу - закачаетесь.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

задача действительно плевая. для сильных спецов.

а можно из СОТНИ!!! хоть одну готовую? одну...из СОТНИ!!!.

Выбирайте на своё усмотрение что больше будет понятно или достаточно по уровню Ваших технических "претензий"

Применение Форта для ARM, AVR, MSP430, PIC ...

и просмотрите форум, обсуждения, статьи и ссылки на нём по диагонали.

Там же можете доставать непонятными вопросами местных форумчан :)

Книги по Форт на форуме тоже представлены. Начните с 2-ух книг автора Броуди.

 

P.S. Google есть? :)

Можно прочитать и это Статьи на xabraxabr по Форт тематике

Изменено пользователем Kopa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выбирайте на своё усмотрение что больше будет понятно или достаточно по уровню Ваших технических "претензий"

Применение Форта для ARM, AVR, MSP430, PIC ...

и просмотрите форум, обсуждения и ссылки на нём по диагонали.

Там же можете доставать непонятными вопросами местных форумчан :)

 

P.S. Google есть? :)

спасибо. посмотрю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вы понимаете...я уже тут говорил...советы такого типа они очень абстрактны - как интерфейсы в С#.

и что не так с интерфейсами в шарпе ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...