Jump to content

    
Sign in to follow this  
yanvasilij

Beremiz

Recommended Posts

Я добавлю issue и патч на днях; и по-поводу "незакрытых" баг - согласен.

 

По-поводу объединения усилия мы только ЗА. Андрей уже предлагал выше объединиться и отчасти нам это удалось, по мере обнаружения багов в самом Beremiz'e я пишу ему в баг-трекер. Я сам сейчас веду одновременно несколько проектов и в свободное от них время пишу, что-то вроде рантайма для STM32f4xx под беремиз (так же как это делаете Вы, если верить вашему репозитарию) и плагины для этого рантайма в Beremiz'e. У нас была попытка залезть глубоко в потороха matiec для испралления найденных багов, что-то даже удалось, то программист занятый этим переключился сейчас на другой проект, поэтому тут работа стоит.

 

А, да у Beremiz'a есть IRC чат, Андрей там уже сидит, я все никак не могу поставить на рабочую машину IRC-клиент, поэтому бываю там редко, когда подключусь с телефона только.

 

 

Ну IRС у меня нет, так что там я вряяд ли скоро появлюсь.

 

Форкнул репозитрий Андрея, исправил один баг в Beremiz, сделал пул-реквест, реакции пока нет.

 

Андрей часто появляется у себя в bitbucket?

Edited by paulbell

Share this post


Link to post
Share on other sites

Я если честно сам редко сижу в ирке, мне не очень удобно там - на работе у меня блокируют туда доступ, поэтому я там либо через телефон, либо из дома. Можно попробовать создать чат в другом мессенджере.

 

Андрей обычно реагирует очень быстро, практически сразу. Наверно сейчас обстоятельства какие...

Share this post


Link to post
Share on other sites
Я если честно сам редко сижу в ирке, мне не очень удобно там - на работе у меня блокируют туда доступ, поэтому я там либо через телефон, либо из дома. Можно попробовать создать чат в другом мессенджере.

 

Андрей обычно реагирует очень быстро, практически сразу. Наверно сейчас обстоятельства какие...

 

Уже связались, познакомились, спасибо.

 

Хорошо бы втроем пообщаться в online-режиме, если интересно сотрудничество, конечно.

Share this post


Link to post
Share on other sites
Хорошо бы втроем пообщаться в online-режиме, если интересно сотрудничество, конечно.

 

Ну вот, что я предлагаю: cвои контакты я отправил Вам в личку, контакты Андрея у Вас тоже есть, я так понимаю, создайте чат (раз уж Вы инициатор online-режима) в мессенджере, который посчитаете удобным, и пригласите в него нас. Я на приглашение точно откликнусь. Да и вообще, все кто хочет поучаствовать думаю смогут туда подключиться через Вас.

Share this post


Link to post
Share on other sites
Ну вот, что я предлагаю: cвои контакты я отправил Вам в личку, контакты Андрея у Вас тоже есть, я так понимаю, создайте чат (раз уж Вы инициатор online-режима) в мессенджере, который посчитаете удобным, и пригласите в него нас. Я на приглашение точно откликнусь. Да и вообще, все кто хочет поучаствовать думаю смогут туда подключиться через Вас.

 

Если блокируют сам протокол IRC или нет возможности установить IRC-клиент, то всегда есть возможно войти в IRC чат через вэб.

Например, вот здесь

https://webchat.freenode.net/

 

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

Share this post


Link to post
Share on other sites

Всем Здрасте!

 

Сразу описание проблемы: в генерируемых исходниках (Си), для доступа (чтение/запись) к объектам Словаря CANOpen в Беремизе используются указатели на переменные. Проблема заключается в том, что доступ к объектам словаря хорошо было бы сделать через функции CANFestival: set/get ODentry(...), так как они вызывают колбэк (если он есть) записи в словарь.

Кто нибудь решал эту проблему?

 

Была попытка поправить макросы, в accessor.h )) обломался.

 

Заранее Огромное спасибо!

 

 

 

Share this post


Link to post
Share on other sites

Я эту проблему не решал. Но если я правильно все понял, нужно править не accessor.h, а сам модуль CANOpen в беремизе. Кодогенерацией занимается метод CTNGenerate_C(). Если переменные нужно записывать через методы set/get ODentry, а не напрямую, то можно, как вариант отслеживать изменение и производить запись в переменные объектного словаря в функциях __publish и __retrive, которые вызываются соответственно до и после пользовательского цикла. И еще, просто в качестве совета, такие вопросы эффективнее задавать mailing list - ответят быстрее и подробнее.

Share this post


Link to post
Share on other sites

Функции __publish и __retrive - используются для режима debug. Но можно переписать и под себя конечно!

/*
* Retrieve input variables, run PLC and publish output variables
**/
void __run(void)
{
    __tick++;
    if (greatest_tick_count__)
        __tick %= greatest_tick_count__;
   /*__retrieve_debug();*/
    config_run__(__tick);
    __publish_debug();
}

Остаётся вопрос откуда взять список переменных, которые юзает код ПЛК, это раз!

И у меня возникает вопрос, а как генерится код ПЛК: не получится ли что код зациклится на ожидании какого нибудь флага, а он соответственно обновится только в следующем цикле! Может быть такой вариант событий?1

А функция CTNGenerate_C() всего лишь запускает iec2c

Share this post


Link to post
Share on other sites
Функции __publish и __retrive - используются для режима debug.

 

Нет. Я имел ввиду __publish_X и __retrive_X, которые реализует каждый модуль, при кодогерации. Признаться, после вашего сообщения, сам засомневался, что задал вопрос в ML. Тот же Canfestival реализован, как модуль к Beremiz'у, поэтому и реализует свои __publish_X и __retrive_X при генерации исходников.

Share this post


Link to post
Share on other sites

Не удобно когда переменных много! Обновлять всё, чтоб использовать часть! накладно получается!

Пока рабочим вариантом используем переписанные макросы в заголовочных файлах iec_inc.

Share this post


Link to post
Share on other sites
И у меня возникает вопрос, а как генерится код ПЛК: не получится ли что код зациклится на ожидании какого нибудь флага, а он соответственно обновится только в следующем цикле! Может быть такой вариант событий?1

 

Если __publish и __retrive реализовать без циклов, то такого быть не должно.

Iec2c генерирует конечные автоматы, которые работают кооперативно.

T.к. количество автоматов ограничено, то получается гарантия ограниченного WCET для кода,

генерируемого iec2c если он отработал без глюков.

Share this post


Link to post
Share on other sites

Приветствую всех! Сборка проекта matiec из репозитория прошла с незначительными варнингами. Сам beremiz запускается. Однако при попытке запуска его проекта из среды PyDev вываливается куча ошибок. В чем может быть моя ошибка?

Share this post


Link to post
Share on other sites

Из какого репозитария Вы взяли Beremiz и matiec? В какой операционной системе Вы работаете? И что за ошибки в pydev, выложите лог? И еще, повторюсь, настоятельно рекомендую спрашивать в mailing list, так гораздо эффективнее поверьте.

Share this post


Link to post
Share on other sites
Из какого репозитария Вы взяли Beremiz и matiec? В какой операционной системе Вы работаете? И что за ошибки в pydev, выложите лог? И еще, повторюсь, настоятельно рекомендую спрашивать в mailing list, так гораздо эффективнее поверьте.

 

Beremiz и matiec - из https://github.com/nucleron. Нам требуется собрать минимально рабочую систему на плате F4Discovery. Из какого репозитория нам будет быстрее это сделать? Работаем в Linux/Ubuntu. IDE - Eclipse+PyDev. Логи соберу, укорочу и выложу.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this