Показать сообщение отдельно
Старый 12.11.2013, 17:40   #10
Dubel
Новый Пользователь
 
Регистрация: 29.08.2012
Регион: Беларусь
Машина: BMW E39
Сообщений: 16
Dubel has a spectacular aura aboutDubel has a spectacular aura about
По умолчанию

Привет. Обрати внимание на ошибку на печатке, IBUS и питание перепутаны, если делаешь по моей. В схеме все правильно. Идею подмены адреса не делал. У меня два адаптера один умный, этот, а второй простой, без анализатора коллизий. Простой отдельно в COM порт вставлен и управляет радио, а этот умный в шину авто смотрит. Да просто подключаешь этот к ардуине и считывешь/передаешь. Тут исходники на форуме под ардуину для IBUS для анализа и передачи кнопок были.
Ну и учти, я у себя делал софтварную проверку занятости. А можно включить режим хардварной проверки. Я у себя так реализовывал:


PHP код:
const int SLEEP_TIME 1;
int MaxLoopCount 600 SLEEP_TIME;

 if (
_PcCarSerialPort.CtsHolding)
 {
        while (
_PcCarSerialPort.CtsHolding)
        {
            if (
MaxLoopCount == 0)
            {
                return 
false//не передали , ошибка
             
}
            
System.Threading.Thread.Sleep(SLEEP_TIME);
           
MaxLoopCount--;
          }
 }
//шина освободилась,можно передавать
_PcCarSerialPort.Write(newMsg0newMsg.Length);
return 
true
Ну тут смысл анализировать сигнал CTS. Если на нем 0, шина свободна, если 1, ждем пока освободится.

Но можно включить режим Hardware flow control. В нем автоматом должно работать, но я не пробовал.

Спроси как делал DarkDuke, может по другому. Унего все работало, у меня пока все на столе собрано. CD changer эмулятор реализовал. Но в этом подходе не понравилось, что звук с компа при включенном штатном радио не идет.
Dubel вне форума   Ответить с цитированием