|
1 / 1 / 0
Регистрация: 12.02.2014
Сообщений: 76
|
||||||
Как отловить КЗ на шине CAN?29.12.2018, 09:59. Показов 1844. Ответов 12
Всем привет! Всех с НГ.
Вопросик такой. Есть код обмена по шине CAN.
Но не получается отследить ситуацию КЗ на шине. Т.е. замыкаем, а никаких ошибок и исключений не вылазит... Выскочить из внутреннего цикла во внешний не получается. Кто-нить знает, должна ли вылезать ошибка в if (FD_ISSET(ss[0], &error_fs)) ? Понятно что можно накрутить проверку что если какое-то колво раз не выбран ни один дескриптор, то это значит, что что-то не в порядке. Но это частная ситуация, когда ты уверен что обмен идет не прерываясь и запросы по кан гуляют постоянно. А если кан тупо простаивает без регулярного обмена, то как отмониторить КЗ?
0
|
||||||
| 29.12.2018, 09:59 | |
|
Ответы с готовыми решениями:
12
Как программно подключиться к шине PCI?
Как отследить адрес на 16 битной шине данных? |
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
||
| 29.12.2018, 10:50 | ||
|
Нужно через setsockopt() установить интересующие вас флаги (незнаю что будет для KЗ, может BUSOFF или BUSERROR) в CAN_RAW_ERR_FILTER и анализировать CAN_ID каждого полученного фрейма на предмет флага CAN_ERR_FLAG
0
|
||
|
1 / 1 / 0
Регистрация: 12.02.2014
Сообщений: 76
|
|
| 29.12.2018, 10:56 [ТС] | |
|
спасибо, надо поизучать...
но тут сразу вопрос возникает - а какие могут быть фреймы при кз??? обмен-то обрывается аварийно... линии нет. т.е. это должна быть либо служебная посылка от системного драйвера CAN, либо чего??
0
|
|
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 29.12.2018, 11:01 | |
|
1
|
|
|
1 / 1 / 0
Регистрация: 12.02.2014
Сообщений: 76
|
|
| 29.12.2018, 11:08 [ТС] | |
|
Еще тогда вопросик, может вы знаете, есть ли способ драйвер системный рестартануть на горячую из программы.
На данный момент, я искусственно попытался прерывать цикл, чтобы выполнить переинициализацию сокета, при прекращении КЗ. Но не получается так. Связи нет. Приходится рестартовать устройство, чтобы драйвер очухался...
0
|
|
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 29.12.2018, 11:19 | |
|
Честно говоря не знаю. Если помогает что-то типа ip link set canN type can restart из консоли, то можно посмотреть что именно они делают и повторить руками.
0
|
|
|
1 / 1 / 0
Регистрация: 12.02.2014
Сообщений: 76
|
|
| 29.12.2018, 11:24 [ТС] | |
|
спасибо, будем изучать...
0
|
|
|
36 / 28 / 9
Регистрация: 11.11.2018
Сообщений: 163
|
|
| 05.01.2019, 11:58 | |
|
а зачем Вам отлавливать КЗ на шине? может шина заизолирована будет и в этом нет необходимости.
0
|
|
|
1 / 1 / 0
Регистрация: 12.02.2014
Сообщений: 76
|
|
| 09.01.2019, 08:10 [ТС] | |
|
ага, действительно, а зачем
)))) а вдруг авось да небось
0
|
|
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 09.01.2019, 13:33 | |
|
051Demon, если будут результаты, напишите сюда пожалуйста - вдруг самому когда пригодиться.
0
|
|
|
1 / 1 / 0
Регистрация: 12.02.2014
Сообщений: 76
|
||||||
| 06.11.2019, 12:48 [ТС] | ||||||
|
prik, получилось примерно так
1
|
||||||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 07.11.2019, 08:07 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 12.02.2014
Сообщений: 76
|
|
| 07.11.2019, 08:09 [ТС] | |
|
prik, в настройках can указывается таймаут на рестарт
up ip link set up can0 type can bitrate 500000 restart-ms 100 т.е. при сбое, в том числе при кз, драйвер будет каждые 100 мс рестартовать. в моем варианте работает отлично. всё ок
0
|
|
| 07.11.2019, 08:09 | |
|
Помогаю со студенческими работами здесь
13
Как будет работать схема на операционном усилителе, если его вход минус подключить к общей шине Как отловить событие снятия галочки как во внутренних Checkbox компонента Как остановить ролик из основной сцены, и как отловить окончание ролика? Как написать свой Shift? ( или как отловить клавиши ) Можно ли как-то отловить NetSend, до того как он высветится Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита табличной части. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|