У меня была такая же проблема в связи RasPi -> ATMEGA, и я решил ее на подчиненном устройстве. Это сообщение об ошибке появляется, если ваш подчиненный не отвечает.
Я попробовал следующий код на RasPi, с ведомым I2C, подключенным к шине I2C и настроенным с адресом 0x8:
из smbus import SMBus
I2C_Bus = SMBus (1)
SLAVE_ADD = 0x8
I2C_Bus.write_byte (SLAVE_ADD, 0xAA)
Если подчиненный I2C хорошо настроен для подтверждения, он должен работать!
Я, наверное, чего-то упускаю, но почему бы просто не дать у них разные идентификаторы?
<a href="#button1" id="button-1">button 1</a>
<a href="#button2" id="button-2">button 2</a>
<a href="#" id="reset">Home</a>
Или любое другое соглашение, которое вы предпочитаете.
Весь смысл якорной ссылки состоит в том, чтобы прокрутить страницу до определенной точки. Поэтому, если вы не хотите, чтобы это происходило, вам нужно прикрепить обработчик onclick
и вернуть false. Даже простое добавление его в качестве атрибута должно сработать:
<a href="#button1" id="button1" onclick="return false">button 1</a>
Побочным эффектом вышеизложенного является то, что сам URL-адрес не изменится, поскольку возврат false отменит событие. Итак, поскольку вы хотите, чтобы URL-адрес действительно изменился, вы можете установить для переменной window.location.hash
желаемое значение (это единственное свойство URL-адреса, которое вы можете изменить, не заставляя браузер перезагрузить). Вы, вероятно, можете прикрепить обработчик событий и вызвать что-то вроде window.location.hash = this.id
, хотя я не уверен, как mootools обрабатывает события.
(Также вам нужно, чтобы все идентификаторы были уникальный)
Вероятно, проще было бы добавить его как GET. То есть http://example.com/foo.php?q=#button1
вместо http://example.com/foo.php#button1
Это не будет имеют какое-либо влияние на то, как отображается страница (если вы этого не хотите), и в большинстве языков сценариев уже есть инструменты для простого (и безопасного) чтения данных.