Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 17.05.2016, 23:37  
cogen
Прописка
 
Регистрация: 25.04.2010
Сообщений: 24
Сказал спасибо: 9
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
cogen на пути к лучшему
По умолчанию Re: Пишем свое API

Вообще редко встречал реально полезного обработчика кодов возврата, вот признайтесь, что вы делаете с BME280_Error дальше? if(BME280_Error), угадал?
Реклама:
cogen вне форума  
Непрочитано 17.05.2016, 23:43  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Пишем свое API

В данном случае на плате может быть разный набор датчиков. Хост получит свои данные и коды ошибок. Там уже они пойдут в логи. Но в общем если датчик инитиализиуется с ошибкой, что на линии ничего нет, его больше читать не пытаются.
Easyrider83 вне форума  
Непрочитано 18.05.2016, 00:25  
cogen
Прописка
 
Регистрация: 25.04.2010
Сообщений: 24
Сказал спасибо: 9
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
cogen на пути к лучшему
По умолчанию Re: Пишем свое API

Фактически функция инициализации отвечает на уровне хост-протокола или устанавливает глобальные переменные, не используемые в остальных функциях драйвера, так? То есть логический уровень абстракции этой функции выше драйвера. Я бы в таком случае её вообще исключил вместе с её кодами возврата, развернув прямо в месте вызова.
cogen вне форума  
Непрочитано 18.05.2016, 02:03  
Ar-Gen-Tum
Почётный гражданин KAZUS.RU
 
Регистрация: 19.10.2010
Сообщений: 1,752
Сказал спасибо: 158
Сказали Спасибо 640 раз(а) в 364 сообщении(ях)
Ar-Gen-Tum на пути к лучшему
По умолчанию Re: Пишем свое API

Сообщение от cogen Посмотреть сообщение
Вообще редко встречал реально полезного обработчика кодов возврата,
Да лан , гоните конкретно .
При возникновении ошибки, действия могут быть самыми разными, от просто игнорирования
неопределенного результата, до останова системы и включения аварийной сигнализации.
Ar-Gen-Tum вне форума  
Непрочитано 18.05.2016, 02:42  
cogen
Прописка
 
Регистрация: 25.04.2010
Сообщений: 24
Сказал спасибо: 9
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
cogen на пути к лучшему
По умолчанию Re: Пишем свое API

ага, могут быть, иногда. Только обычно разнообразным нештатным ситуациям назначают свой код возврата, в каждом модуле своя простынь с дефайнами или enum, типа на верхнем уровне обработаем ошибку, а по факту при вызове проверяется OK или неокей и по ситуации неокей что-то делается, а что за неокей - неважно.
Ну а раз так обычно происходит, может ну их эти коды возврата? Стараться писать так, чтобы в них не было нужды?
cogen вне форума  
Непрочитано 18.05.2016, 06:33  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,907
Сказал спасибо: 2,543
Сказали Спасибо 11,818 раз(а) в 5,924 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Пишем свое API

Сообщение от cogen Посмотреть сообщение
ага, могут быть, иногда. Только обычно
А когда "необычно", то переписывать с самого "откуда ноги растут". Или, может, лучше дописать кусочек в нужном месте? Ну, тот самый обработчик? Не затрагивая идеологию?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 18.05.2016, 08:48  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Пишем свое API

Глядишь - и с Фобосами дело наладится...
omercury вне форума  
Непрочитано 18.05.2016, 08:56  
cogen
Прописка
 
Регистрация: 25.04.2010
Сообщений: 24
Сказал спасибо: 9
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
cogen на пути к лучшему
По умолчанию Re: Пишем свое API

Не уверен, что вы, Олег (akegor), поняли мою мысль. По сути - делать рефакторинг означает переписывать всё, пользуясь работающим кодом как спецификацией поведения. Делается это с целью упростить обслуживание, обеспечить дальнейшее развитие, повысить надежность, быстродействие, энергосбережение. Достигается это, в частности, путём анализа существующего кода и отбрасывания лишнего. Я утверждаю, что коды ошибок, возвращаемые многими функциями - это лишнее, поскольку они де-факто не анализируются. Я предлагаю оптимизацию путем отказа от возврата функциями кода ошибки и путем выбрасывания функций, общающихся с системой посредством кодов ошибок.

Последний раз редактировалось cogen; 18.05.2016 в 08:58.
cogen вне форума  
Непрочитано 18.05.2016, 09:26  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Пишем свое API

У меня сделана некая структура подсчета ошибок. В ней есть группы, отвечающие за разные ошибки в разных блоках. Каждая группа содержит переменную типа u16, которая инкременируется с каждым появлением ошибки. Эту структуру получает хост в виде нулевого отчета, когда нет данных для передачи. И она же выводится на SD карту в виде лога. Все довольно топорно, но работает.
И еще я сделал вывод, что I2C мастер надо делать софтварно. Использовать переферию на STM в данном случае смысла никакого нет. Вот такой повод для холивара.
Easyrider83 вне форума  
Непрочитано 18.05.2016, 09:57  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Пишем свое API

Сообщение от Easyrider83 Посмотреть сообщение
И еще я сделал вывод, что I2C мастер надо делать софтварно. Использовать переферию на STM в данном случае смысла никакого нет. Вот такой повод для холивара.
"Не прошло и полжизни!"(с).
Об этом говорили ещё со времён расцвета ПИКов. Убогий протокол, какой уж тут может быть холивар?
STM32F0 вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
свое USB устройство ESWANT Микроконтроллеры, АЦП, память и т.д 2 08.09.2009 14:58


Часовой пояс GMT +4, время: 06:07.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot