Привет. Обрати внимание на ошибку на печатке, 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(newMsg, 0, newMsg.Length);
return true;
Ну тут смысл анализировать сигнал CTS. Если на нем 0, шина свободна, если 1, ждем пока освободится.
Но можно включить режим Hardware flow control. В нем автоматом должно работать, но я не пробовал.
Спроси как делал DarkDuke, может по другому. Унего все работало, у меня пока все на столе собрано. CD changer эмулятор реализовал. Но в этом подходе не понравилось, что звук с компа при включенном штатном радио не идет.