Обмен данными с NetLoader
Обмен с NetLoader осуществляется отправкой команд программирования в виде UDP-датаграмм на порт 65535 DS. На каждую команду NetLoader отправляет ответ, также в виде UDP-датаграммы. Ответ на конкретную команду всегда отправляется на IP-адрес и номер порта, с которых была получена эта команда.
Поскольку каждая команда и каждый ответ передаются в отдельной UDP-датаграмме, дополнительная инкапсуляция не требуется.
Все команды NetLoader имеют следующий формат:
| C.C. | Необязательные параметры |
- C.C. - код команды. Код команды всегда состоит из одного ASCII-символа. Все доступные команды и их коды перечислены в таблице команд: доступные команды.
- Поле необязательных параметров содержит необходимые данные, если они требуются командой.
Все ответы NetLoader имеют следующий формат:
| R.C. | Необязательные данные |
- R.C. - код ответа. Код ответа всегда состоит из одного ASCII-символа и информирует отправителя команды о результате её выполнения.
- Поле необязательных данных содержит необходимые данные (если они есть).
Такой способ обмена командами и ответами полностью совпадает с тем, который использует прикладная прошивка DS, где он называется внеполосным (UDP) программированием. Обмен по UDP с прикладной прошивкой и с NetLoader одинаков, за исключением следующих небольших различий:
- Последние версии прикладной прошивки принимают UDP-команды на двух портах - 65535 и 32767. NetLoader принимает UDP-команды только на порту 32767.
- Для ускорения выполнения команд прикладная прошивка принимает несколько UDP-команд одновременно (это основано на использовании дополнительного поля ID команды). NetLoader этой функции не поддерживает, и команды нужно отправлять строго по одной: сетевой хост не должен отправлять следующую команду, не получив (не дождавшись) ответа на предыдущую.
Кроме этих двух отличий, обмен по UDP с NetLoader такой же, как обмен по UDP с прикладной прошивкой. Так же как прикладная прошивка, NetLoader поддерживает широковещательное UDP-программирование, которое инициируется командой Select In Broadcast Mode (W). Есть и другие команды, которые имеют похожие или идентичные «параллельные» команды в прикладной прошивке: команда Echo (X), команда Verify and Start Firmware (E), команда Get Firmware Version (V).
UDP-программирование в руководстве по прикладной прошивке называется внеполосным (UDP) программированием, потому что существует также внутриполосное (TCP) программирование, основанное на TCP-обмене с DS. Из-за ограничений по размеру NetLoader не поддерживает TCP-обмен, поэтому единственный доступный способ обмена командами и ответами - это UDP-команды.