способ выполнения программы заказчика блоком радиосвязи

Классы МПК:H04Q7/32 оборудование движущегося абонента
Автор(ы):
Патентообладатель(и):ВЭЙВКОМ СА (FR)
Приоритеты:
подача заявки:
2002-03-22
публикация патента:

Изобретение относится к способам радиосвязи, в которых выполняют основную программу, обеспечивающую, в частности, выполнение функций радиосвязи блоком радиосвязи и приложение заказчика. Техническим результатом является расширение функциональных возможностей. В способе блок радиосвязи устанавливает связь между основной программой и, по меньшей мере, одной программой заказчика, содержащей основное приложение заказчика и, по меньшей мере, одно вторичное приложение заказчика, подчиненное основному приложению заказчика. Операции обработки, выполняемые указанной программой, вложенной заказчиком, распределяется между указанным основным приложением заказчика и указанным, по меньшей мере, одним вторичным приложением заказчика. Приложение, вложенное заказчиком, действует как драйвер заказчика и как управляющая команда заказчика, которая управляет выполнением команд драйвера, посланных внешней программой заказчика, расположенной в оборудовании третьей стороны и выполняемой этим оборудованием во взаимодействии с блоком радиосвязи. 24 з.п. ф-лы, 6 ил. способ выполнения программы заказчика блоком радиосвязи, патент № 2298298

способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 способ выполнения программы заказчика блоком радиосвязи, патент № 2298298

Формула изобретения

1. Способ выполнения программы заказчика блоком радиосвязи, хранящего и выполняющего основную программу, которая, в частности, выполняет функции радиосвязи, причем основная программа содержит средство выполнения команд драйвера, посланных основной программе, по меньшей мере, одним драйвером заказчика и принадлежащий к предопределенному набору команд драйвера, причем блок радиосвязи также хранит и выполняет, по меньшей мере, одну программу заказчика, называемую программой, вложенной заказчиком, содержащую основное приложение заказчика и, по меньшей мере, одно вторичное приложение заказчика, подчиненное основному приложению заказчика, при этом операции обработки, выполняемые указанной программой, вложенной заказчиком, распределяются между указанным основным приложением заказчика и указанным, по меньшей мере, одним вторичным приложением заказчика, заключающимся в осуществлении связи между программой, вложенной заказчиком, и основной программой, позволяющей программе, вложенной заказчиком, выполнять, по меньшей мере, одну из следующих двух функций: функцию драйвера заказчика, посылающего команды драйвера на основную программу и получающего ответные сигналы от основной программы, вытекающие из выполнения некоторых команд драйвера, или функцию управляющей программы заказчика, управляющей выполнением команд драйвера, посланных драйвером заказчика, называемым внешним приложением заказчика, расположенным в и выполняемым терминальным оборудованием, взаимодействующим с блоком радиосвязи.

2. Способ по п.1, отличающийся тем, что программа заказчика содержат двоичный файл, содержащий указанное основное приложение заказчика и указанное, по меньшей мере, одно вторичное приложение заказчика.

3. Способ по п.1, отличающийся тем, что программа заказчика содержит первый двоичный файл, содержащий основное приложение заказчика и, по меньшей мере, второй двоичный файл, который содержит, по меньшей мере, одно вторичное приложение заказчика.

4. Способ по любому из пп.1 или 3, отличающийся тем, что осуществление связи включает следующие стадии, дающие возможность программе, вложенной заказчиком, функционировать как драйвер заказчика: программа, вложенная заказчиком, посылает, по крайней мере, одну команду драйвера на средство выполнения, включенное в основную программу; основная программа посылает ответный сигнал, вытекающий из выполнения, по крайней мере, одной команды драйвера средством выполнения, включенным в основную программу, в программу, вложенную заказчиком; программа, вложенная заказчиком, обрабатывает, по крайней мере, одно исходящее сообщение ответных сигналов, посланных от основной программы.

5. Способ по п.4, отличающийся тем, что осуществление связи включает следующие стадии, позволяющие программе, вложенной заказчиком, функционировать как управляющая программа заказчика: основная программа выдает, по крайней мере, одну из предварительных команд синтаксического анализа в виде функции определенной стратегии предварительного синтаксического анализа, служащей для передачи команды драйвера от внешней программы заказчика в программу, вложенную заказчиком и/или в средство выполнения, содержащееся в основной программе; программа, вложенная заказчиком, обрабатывает, по крайней мере, одно из исходящих сообщений о командах драйвера, переданных ему.

6. Способ по п.5, отличающийся тем, что осуществление связи включает: программа, вложенная заказчиком, выбирает стратегию предварительного синтаксического анализа из набора команд стратегий предварительного синтаксического анализа типа: команды драйвера, исходящие от внешнего приложения, и посылаемые только средству выполнения в составе основной программы; команды драйвера, исходящие от внешнего приложения, посылаемые только вложенной заказчиком программе; команды драйвера, исходящие от внешнего приложения и посылаемые средству выполнения в составе основной программы и вложенной заказчиком программе.

7. Способ по п.5, отличающийся тем, что обработка осуществляется программой, вложенной заказчиком таким образом, что, по меньшей мере, одно решение осуществляется для каждой команды, принадлежащей к группе, включающей следующие решения: послать команду драйвера средству выполнения, введенному в основную программу, при этом вложенная заказчиком программа содержит для этой цели средство посылки команд драйвера на средство выполнения; передавать или не передавать ответный сигнал, при этом ответный сигнал является только функцией, по меньшей мере, одной единицы информации о команде, без выполнения этой команды, при этом программа, вложенная заказчиком, включает средство посылки ответного сигнала на внешнее приложение заказчика через основную программу.

8. Способ по любому из пп.1, или 2, или 3, или 6, отличающийся тем, что для того, чтобы вложенная заказчиком программа функционировала в виде управляющей программы заказчика, осуществление связи включает следующие стадии: основная программа выдает, по меньшей мере, один ответный сигнал предварительного синтаксического анализа как функцию определенной стратегии синтаксического анализа ответных сигналов с тем, чтобы передать, по меньшей мере, один ответный сигнал, вытекающий из выполнения, по меньшей мере, одной команды драйвера средством выполнения, включенным в основную программу, в программу, вложенную заказчиком, и/или во внешнюю программу заказчика; программа, вложенная заказчиком, обрабатывает, по меньшей мере, один введенный в нее ответный сигнал.

9. Способ по п.8, отличающийся тем, что осуществление связи содержит следующие стадии: программа, вложенная заказчиком, выбирает стратегию синтаксического анализа ответных сигналов, из набора стратегий синтаксического анализа ответных сигналов, благодаря чему ответные сигналы, исходящие из средства выполнения, включающего основную программу, передаются только внешней программе заказчика; ответные сигналы, исходящие из средства выполнения, включающего основную программу, передаются только программе, вложенной заказчиком; ответные сигналы, исходящие из средства выполнения, включающего основную программу, передаются в программу, вложенную заказчиком и во внешнюю программу заказчика.

10. Способ по любому из пп.1-3 или 9, отличающийся тем, что блок радиосвязи включен в состав устройства, принадлежащего к следующей группе: терминалы систем радиосвязи; устройства, отличные от терминалов радиосвязи, но требующие беспроводной связи; модемы.

11. Способ по любому из пп.1-3 и 9, отличающийся тем, что основная программа содержит, по меньшей мере, одно основное приложение, связанное с набором функций выполнения, каждая из которых может выполнять, по меньшей мере, одну из указанных команд драйвера, причем указанные основное и вторичное приложения заказчика связаны с набором исходных функций, каждая из которых предоставляет возможность посылки или приема команд драйвера или ответных сигналов на команды драйвера, на основное приложение или от основного приложения, основная программа и/или указанная программа, вложенная заказчиком, включает прикладной интерфейс, используемый для связи с помощью интерфейса указанных исходных функций с указанными функциями выполнения.

12. Способ по п.11, отличающийся тем, что набор исходных функций, связанный с основным приложением заказчика, в частности, содержит исходную функцию инициализации основного приложения заказчика ("wm_apmAppliInit") которое вызывается при включении блока радиосвязи.

13. Способ по п.12, отличающийся тем, что набор исходных функций, связанных с основным приложением заказчика, содержит исходную функцию для подписки на обслуживание для посылки сообщений, исходящих от основной программы ("wm_osMsgParserSubscribe"), причем во время этой подписки основное приложение заказчика посылает адрес исходной функции обработки сообщения, ("wm_apmAppliParser"), в котором основное приложение заказчика хотело бы получать сообщения от основной программы к основному приложению.

14. Способ по п.11, отличающийся тем, что набор исходных функций, связанных с вторичным приложением заказчика, содержит в частности, исходную функцию для инициализации вторичного приложения заказчика ("wm_app2Pipe(Init)"), которое вызывается основным приложением заказчика.

15. Способ по п.14, отличающийся тем, что набор исходных функций, связанных с вторичным приложением заказчика, содержит исходную функцию для подписки на обслуживание для посылки сообщений, исходящих от основной программы ("wm_osMsgParserSubscribe"), причем во время этой подписки вторичное приложение заказчика посылает адрес исходной функции обработки исходящего сообщения ("wm_app2MsgParser") основной программе, в которой вторичное приложение заказчика хотело бы получать сообщения, исходящие от основной программы.

16. Способ по п.14, отличающийся тем, что исходная функция инициализации вторичного приложения заказчика содержит, по меньшей мере, один параметр, допускающий использование механизма диалога между основным приложением заказчика и вторичным приложением заказчика.

17. Способ по п.14, отличающийся тем, что набор исходных функций, связанных с вторичным приложением заказчика, также содержит исходную функцию для остановки вторичного приложения заказчика (wm app2Pipe(Stop)"), которое вызывается основным приложением заказчика.

18. Способ по п.14, отличающийся тем, что набор исходных функций, связанных с вторичным приложением заказчика, содержит исходную функцию для снятия подписки на обслуживание посылки сообщений, исходящих от основной программы ("wm_osMsgParserUnsubscribe").

19. Способ по п.13, отличающийся тем, что указанное сообщение является параметром указанной исходной функции обработки сообщений от основной программы ("wm_apmAppliParser", "wm_app2MsgParser"), а структура указанного сообщения, формирующего параметр, содержит первое поле, содержащее информацию, относящуюся к типу указанного сообщения; второе поле, содержащее конкретное тело указанного сообщения.

20. Способ по п.19, отличающийся тем, что тип сообщения принадлежит к группе, содержащей сообщение, включающее ответный сигнал на команду драйвера, ранее посланную основной программой, в программу, вложенную заказчиком; сообщение, содержащее незапрашиваемую команду драйвера; сообщение, содержащее команду драйвера, посланную внешней программой заказчика через основную программу; сообщение, включающее ответный сигнал, вытекающий из выполнения команды драйвера основной программой; сообщение, посланное по истечении времени ожидания.

21. Способ по п.11, отличающийся тем, что наборы исходных функций, связанных с основным приложением заказчика и с вторичным приложением заказчика, также содержат, по меньшей мере, исходную функцию, принадлежащую к следующей группе: функция ("wm_atSendCommand") для посылки, по меньшей мере, одной команды драйвера в основную программу, при этом первый параметр указанной функции посылки, является, по меньшей мере, одной командой драйвера, второй параметр указанной функции посылки указывает на программу назначения, на которую должен поступить ответный сигнал, вытекающий из выполнения указанной команды драйвера, а именно, программу, вложенную заказчиком и/или внешнее приложение заказчика, включенное во внешнюю программу заказчика; функция регистрации ("wm_atUnsolicitedSubscription") с основной программой для обслуживания приема незапрашиваемых команд драйвера, при этом один параметр указанной функции регистрации указывает на программу назначения, на которую должны быть переадресована каждая из незапрашиваемых команд драйвера, а именно, на основное приложение заказчика и/или вторичное приложение заказчика, включенное в программу, вложенную заказчиком, и/или на внешнее приложение заказчика, включенное во внешнюю программу заказчика; функция регистрации ("wm_at_CmdPreParserSubscribe") с основной программой для обслуживания предварительного синтаксического анализа команды драйвера, в которой параметр указанной функции регистрации указывает на получателя в виде приложения (или приложений), а именно, на основное приложение заказчика и/или вторичное приложение заказчика, включенное в программу, вложенную заказчиком, и/или на основную программу заказчика, в которую направляется каждая из команд драйвера, вытекающая из внешнего приложения; функция регистрации ("wm_atRspPreParserSubscribe") с основной программой для обслуживания предварительного синтаксического анализа ответных сигналов, в которой параметр указанной функции регистрации указывает на приложение (или приложения) назначения, а именно, на основное приложение заказчика и/или вторичное приложение заказчика, включенное в программу, вложенную заказчиком, и/или внешнее приложение заказчика, включенное во внешнюю программу заказчика, на которую должен быть направлен каждый ответный сигнал, вытекающий из выполнения команды драйвера основной программой; функция ("wm_atSendRspExtemalApp") для посылки, по меньшей мере, одного ответного сигнала на внешнюю программу заказчика через основную программу, при этом параметр указанной функции посылки является указанным, по меньшей мере, одним ответным сигналом.

22. Способ по п.1, отличающийся тем, что программа, вложенная заказчиком, и основная программа, каждая, использует отдельную часть оперативной памяти, и попытка одной из этих двух программ обратиться к части оперативной памяти, зарезервированной для другой программы, остановит операцию.

23. Способ по п.1, отличающийся тем, что набор команд драйвера является набором стандартных команд AT.

24. Способ по п.23, отличающийся тем, что набор команд драйвера содержит дополнительную команду AT для загрузки программ заказчика (AT+WDWL), предоставляя возможность внешнему приложению заказчика загрузить новые программы заказчика в блок радиосвязи в дополнение к стандартным командам AT.

25. Способ по п.23, отличающийся тем, что набор команд драйвера содержит дополнительную команду, называемую командой дезактивации (AT+WOPEN), которая разрешает внешней программе заказчика дезактивировать программу, вложенную заказчиком, в дополнение к стандартным командам AT.

Описание изобретения к патенту

Настоящее изобретение относится к системам радиосвязи, в частности, но не исключительно, к глобальной системе мобильной связи (GSM) стандарта DCS 1800 (цифровая сотовая система связи 1800 МГц), системе персональной мобильной связи (PCS) 1900, системе пакетной радиосвязи общего пользования (GPRS) и к универсальной система мобильной связи (UMTS).

Конкретно, изобретение относится к блоку радиосвязи. Напомним, что блок радиосвязи представляет собой основной элемент радиотелефона. Он содержит и выполняет основную программу (обычно называемую "программой радиосвязи" или "программой глобальной системы связи с подвижными объектами"), которая осуществляет беспроводную связь (радиосвязь) и управляет различными другими аппаратными средствами радиотелефона (экран, клавиатура, громкоговоритель и т.д.).

Как правило (первая область применения), блок радиосвязи соединен с терминалом (ME) для "мобильного оборудования"), который работает через карточку интерфейсного модуля абонента (SIM).

В настоящее время предлагаются и другие области применения вышеупомянутого блока радиосвязи.

В частности, было предложено интегрировать блок радиосвязи в устройства, отличные от терминалов радиосвязи, но которые все еще требуют осуществления беспроводной связи (вторая область применения). Например, в устройствах телеметрии (для считывающих датчиков), в устройствах аварийной сигнализации и в устройствах считывания данных с банковских карточек.

Также было предложено использовать блок радиосвязи в независимом устройстве (третья область применения), в частности, в специальных модемах. Этот тип модема не содержит никакого аппаратного интерфейса способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 человек-машинаспособ выполнения программы заказчика блоком радиосвязи, патент № 2298298 (экран, клавиатуру, громкоговоритель и т.д.). Устройство предназначено для взаимодействия с терминальным оборудованием (поддерживающим программы заказчика), которое имеет аппаратные элементы интерфейса человек-машина. В частности, но не исключительно, терминальным оборудованием может быть микрокомпьютер. В целом, терминальное оборудование содержит и выполняет программу-драйвер заказчика, которая управляет блоком радиосвязи, используя набор команд драйвера в формате AT. Команды AT (команды способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 Вниманиеспособ выполнения программы заказчика блоком радиосвязи, патент № 2298298 ) позволяют терминальному оборудованию (ТО) попросить радиостанцию, с которой оно соединено, выполнить некоторые заранее заданные действия. Для достижения этой цели основная программа (хранящаяся в блоке радиосвязи) содержит средство выполнения команд AT, посланных ему программным драйвером заказчика (хранящимся в терминальном оборудовании).

Дополнительная информация о командах AT содержится в документах Европейского института стандартов по телекоммуникациям способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 GSM 07.05способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 и способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 GSM 07.07способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 и в рекомендации V25ter Международного союза по телекоммуникациям (ITU-T), которые используются здесь в качестве ссылки.

В целом, блок радиосвязи может управляться терминальным оборудованием, используя команды AT, не только в вышеупомянутой области третьего применения (блок радиосвязи, образующий модем), но также и в первой и второй областях применения, упомянутых выше, (блок радиосвязи, введенный в терминал радиосвязи или в другую систему).

Иными словами, независимо от области предлагаемого применения, блок радиосвязи может управляться терминальным оборудованием, с которым он взаимодействует (обычно через последовательную цепь связи). В этом случае программный драйвер заказчика содержащий "внешнее приложение заказчика", выполняемое терминальным оборудованием, посылает команды AT основной программе, управляемой и выполняемой блоком радиосвязи.

Как показано на фигуре 2, работа существующей системы, в которой терминальное оборудование управляет блоком радиосвязи, может быть описана как последовательность следующих стадий:

- стадия "1": внешнее приложение (программный драйвер заказчика) 2 посылает команду AT;

- стадия "2": команда AT передается через последовательную цепь связи 5 на средство 4 выполнения команды AT, которое включено в основную программу 3 и хранится и выполняется блоком радиосвязи 1;

- стадия "3": средство выполнения 4 выполняет команду AT;

- стадия "4": после выполнения команды средство выполнения 4 посылает ответный сигнал на внешнее приложение заказчика 2;

- стадия "5": этот ответный сигнал посылается через последовательную цепь 5;

- стадия "6": внешнее приложение заказчика 2 принимает ответный сигнал.

Каждая из этих стадий обозначена на фигуре 2 кружком, в котором проставлен номер соответствующей стадии. Та же самая методика принята и на следующих фигурах, относящихся к настоящему изобретению (как подробно описано ниже).

Существующая методика управления блоком радиосвязи с помощью терминального оборудования имеет несколько недостатков.

Во-первых, она требует двух комплектов ресурсов (процессор и память). Блок радиосвязи включает процессор и память (первый комплект ресурсов), и терминальное оборудование также имеет процессор и память (второй комплект ресурсов). Следовательно, упомянутая выше существующая методика является затратной в смысле потребления энергии и количества оборудования.

Другой недостаток вышеупомянутой существующей методики состоит в том, что блок радиосвязи полностью управляется терминальным оборудованием. Программный драйвер заказчика, хранящийся в терминальном оборудовании и выполняемый им, является "главным компонентом", тогда как основная программа, выполняемая блоком радиосвязи, является "подчиненным компонентом".

Для того чтобы преодолеть недостатки известной системы, заявитель (Wavecom Company) зарегистрировал заявку во Франции № FR 0103909 22 марта 2001 года, озаглавленную способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 Блок радиосвязи, содержащий и основную программу заказчика, и соответствующий способ использования программного драйвера заказчикаспособ выполнения программы заказчика блоком радиосвязи, патент № 2298298 . В этой французской заявке FR 0103909, текст и чертежи которой используются здесь в качестве ссылки, предлагается новая методика управления блоком радиосвязи, который содержит, по меньшей мере, одну программу заказчика, которая действует как программный драйвер заказчика и/или действует как управляющая программа заказчика.

Таким образом, если вложенная заказчиком программа действует как программный драйвер заказчика, блок радиосвязи работает независимо и с малыми эксплутационными затратами. В этом случае блок радиосвязи не должен взаимодействовать с терминальным оборудованием, и основная программа вместе с программным драйвером заказчика используют одни и те же ресурсы (процессор и общую память).

Кроме того, если вложенная заказчиком программа действует как контрольная программа заказчика, блок радиосвязи не ограничивается действием как подчиненного устройства по отношению к терминальному оборудованию, которое выполняет драйвер заказчика. Управляющая программа заказчика выполняется блоком радиосвязи и осуществляет действие, требуемое драйвером заказчика и выполняемое терминальным оборудованием. В этом случае следует отметить, что программа, вложенная заказчиком, является дополнением к описанной выше известной конфигурации. Однако эта дополнительная программа является экономически выгодной, потому она использует те же самые ресурсы (процессор и память), поскольку основная программа также обрабатывается блоком радиосвязи.

В одном предпочтительном варианте упомянутой выше новой методики:

- основная программа содержит, в частности, двоичный файл, содержащий основное приложение;

- программа заказчика содержат, в частности, первый двоичный файл, содержащий приложение заказчика и второй двоичный файл (например, в виде предварительно откомпилированной библиотеки), содержащий интерфейсное приложение с функциями источника, соответствующими приложению заказчика, и функциями выполнения, соответствующими основному приложению.

Эта новая методика управления блоком радиосвязи может рассматриваться как базовое программное средство, позволяющее заказчику разрабатывать свои собственные прикладные программы и загружать их в блок радиосвязи.

В упомянутом выше предпочтительном варианте основная программа и интерфейсное приложение являются "собственными" двоичными файлами, разработанными изготовителем блока радиосвязи, в то время как приложение заказчика является двоичным файлом "заказчика", разработанным заказчиком.

Следует помнить, что процесс разработки двоичного файла содержит следующие стадии:

- запись исходных файлов, например на языке "С";

- компиляция этих исходных файлов, чтобы создать объектные файлы (на машинном языке для микропроцессора, расположенного в блоке радиосвязи);

- редактирование объектных файлов, чтобы создать двоичный файл (который затем разгружается в блок радиосвязи).

В контексте вышеупомянутой новой методики для управления блоком радиосвязи, целью настоящего изобретения является облегчение работы заказчика в процессе развития приложения заказчика.

Другая цель изобретения состоит в том, чтобы предложить простое и эффективное решение проблем диалога между приложениями (основного и вторичного заказчика), вытекает из использования общей концепции настоящего изобретения.

Мы теперь кратко опишем две известных методики решения проблемы диалога между двумя приложениями с указанием недостатков каждой из них.

Согласно первой известной методике проблема диалога между двумя программными приложениями решается при редактировании. Однако это делает необходимым знать все точки диалога. Кроме того, изменение всех исходных функций диалога между двумя приложениями приводит к необходимости согласования всех приложений друг с другом. Результатом является то, что разработчик одного приложения (вторичного приложения) должен записать отдельную версию этого приложения для каждого заказчика, который желает интегрировать его в свои приложения (основные приложения).

Второй известной методикой решения проблем диалога между двумя приложениями состоит в использовании механизмов типа редактирования при динамической связи. В этом механизме только фактически используемые функции должны быть загружены в память. Например, эта методика может быть применена для DLL (Динамически загружаемая библиотека), используемая в Windows (зарегистрированный торговый знак). К сожалению, эта методика требует больших объемов памяти и не подходит для использования, когда имеются серьезные ограничения в блоках радиосвязи с центральным процессором и памятью, работающими в реальном времени.

Эти и другие цели, которые станут более понятными в дальнейшем описании, достигаются согласно изобретению, используя блок радиосвязи, который обеспечивает хранение и выполнение основной программы, которая конкретно, выполняет функции радиосвязи, при этом указанная основная программа содержит средство выполнения команд драйвера, посланных основной программе, по меньшей мере, одним драйвером заказчика и принадлежащей к предопределенному набору команд драйвера. Согласно изобретению упомянутый блок радиосвязи также содержит и выполняет, по меньшей мере, одну программу заказчика, называемую программой, вложенной заказчиком, включающую основное приложение заказчика и, по меньшей мере, одно вторичное приложение заказчика, подчиненное или основное приложение заказчика, причем обработка, осуществляемая упомянутой программой, вложенной заказчиком, заключается в размещении указанного основного приложения заказчика между указанным основным приложением заказчика и, по меньшей мере, одним вторичным приложением. Программа, вложенная заказчиком, и основная программа содержат средство, позволяющее вложенной заказчиком программе играть, по меньшей мере, одну из следующих двух ролей:

- роль драйвера заказчика, посылающего команды драйвера к основной программе, и получающего ответные сигналы от основной программы, вытекающие из выполнения некоторых из команд драйвера;

- роль управляющей программы заказчика, которая контролирует и управляет выполнением команд драйвера, посланных программным драйвером заказчика, которая называется внешним приложением заказчика, и хранится и выполняется терминальным оборудованием, взаимодействующим с блоком радиосвязи.

Следовательно, общий основной принцип изобретения состоит в хранении, по меньшей мере, одной программы заказчика в блоке радиосвязи, которая может действовать как программный драйвер заказчик и/или как управляющая программа заказчика.

В этом контексте общая цель изобретения состоит в использовании клиентского "многоблочного" приложения, содержащего основное приложение заказчика, объединенное с одними или несколькими вторичными приложениями заказчика, а не "моноблочное" приложение заказчика. Каждое вторичное приложение заказчика является приложением, подчиненным основному приложению заказчика, которое его вызвало, в смысле запуска и остановки. После загрузки, вторичное приложение заказчика может обращаться ко всем функциям выполнения, которые доступны основной программе (через механизм подписки на обслуживание для посылки сообщений от основной программы, как будет описано ниже), совершенно независимо от основного приложения заказчика.

Вторичные приложения заказчика представляют собой способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 элементарные блокиспособ выполнения программы заказчика блоком радиосвязи, патент № 2298298 , которые могут быть поставлены заказчикам третьим лицом (как правило, изготовителем блока радиосвязи). Таким образом, объем работы по дальнейшему развитию, выполняемый заказчиком, может быть уменьшен, потому что все, что он разрабатывает, представляет собой способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 основное приложение заказчика", которое он создает, вызывая одно или несколько вторичных приложений заказчика.

Отметим, что заказчик может также разработать вторичные приложения заказчика самостоятельно, если он хотел бы вызывать их в различных основных приложениях заказчика, которые он разрабатывает.

В первом предпочтительном варианте изобретения, упомянутые программы заказчика содержат двоичный файл, содержащий указанное основное приложение заказчика и указанное, по меньшей мере, одно вторичное приложение заказчика.

В этом случае, вторичное приложение заказчика предпочтительно поставляется в виде объектного файла. Таким образом, исходный файл не предусматривается, для того, чтобы защищать ноу-хау собственника (или третьего лица). Объектный файл, содержащий вторичное приложение заказчика, должен быть динамично отредактирован с объектным файлом (или файлами), содержащим основное приложение заказчика, и двоичный файл, вытекающий из этого динамичного редактирования, загружается в блок.

Во втором предпочтительном варианте изобретения упомянутые программы заказчика содержат первый двоичный файл, включающий указанное основное приложение заказчика, и, по меньшей мере, один второй двоичный файл, причем каждый из них содержит, по меньшей мере, одно вторичное приложение заказчика.

В этом случае, вторичное приложение заказчика снабжено в виде двоичного файла. Таким образом, как в другом случае, исходный файл не сообщен, чтобы защитить частный (или "третье лицо") знает как. Двоичный файл, содержащий вторичное приложение заказчика, может быть разгруженное непосредственно в блок.

Предпочтительно, чтобы были предусмотрены следующие возможности для того, чтобы программа, вложенная заказчиком, действовала как программный драйвер заказчика:

- программа, вложенная заказчиком, содержит средство посылки команд драйвера на средство выполнения, включенное в основную программу;

- основная программа содержит средство посылки ответных сигналов, вытекающих из выполнения некоторых команд драйвера средством выполнения, включенным в основную программу, к программе, вложенной заказчиком;

- программа, вложенная заказчиком, содержит средство обработки ответных сигналов, посланных ему основной программой.

Предпочтительно, чтобы были предусмотрены следующие возможности для того, чтобы программа, вложенная заказчиком, действовала как управляющая программа заказчика:

- основная программа включает средство, формирующее команды предварительного синтаксического анализа как функции определенной стратегии предварительного синтаксического анализа для передачи команд драйвера от внешнего приложения заказчика к вложенной программе заказчика и/или в средство выполнения программ, содержащееся в основной программе;

- вложенная заказчиком программа включает средство обработки команд драйвера, переданных через указанное средство предварительного синтаксического анализа.

Таким образом, вложенная заказчиком программа, может выполнять следующие действия:

- либо не предпринимает никаких действий, когда команды передаются только в основную программу, которая выполняет их непосредственно сама;

- либо фильтрует команды, переданные ей без выполнения этих команд основной программой. Например, вложенная заказчиком программа, может, таким образом, решать, какие команды должны быть выполнены основной программой и на какие команды нужно передать ответный сигнал без выполнения команды, как функция определенных критериев;

- либо передает "шпионские" команды, которые копируются и выполняются также непосредственно основной программой.

Как правило, вложенная заказчиком программа содержит средство для выбора стратегии предварительного синтаксического анализа, применяемое в ряде случаев, таких как

- команды драйвера, выдаваемые внешней программой заказчика, посылаются только на средство выполнения в объеме основной программы; синтаксического анализа;

- команды драйвера, выдаваемые внешней программой заказчика, посылаются только программе, вложенной заказчиком;

- команды драйвера, выдаваемые внешней программой заказчика, посылаются на средство выполнения в объеме основной программы и программе, вложенной заказчиком.

Предпочтительно, чтобы указанное средство обработки команд принимало бы, по меньшей мере, одно решение для каждой команды, принадлежащей группе, включающей:

- посылку команды драйвера на средство выполнения, включенного в основную программу, при этом программа, вложенная заказчиком, включает для этой цели средство для посылки команд драйвера на средство выполнения;

- передачу или отсутствие передачи ответного сигнала, только как функции, по меньшей мере, одного элемента информации без выполнения команды, при этом программа, вложенная заказчиком, содержит средство посылки ответного сигнала на внешнюю программу заказчика через основную программу.

Для того чтобы программа, вложенная заказчиком, действовала как управляющая программа заказчика, предпочтительно чтобы:

- основная программа включала средство, формирующее команды предварительного синтаксического анализа как функцию определенной стратегии предварительного синтаксического анализа для передачи команд драйвера от внешнего приложения заказчика к вложенной программе заказчика и/или в средство выполнения программ, содержащееся в основной программе;

- вложенная заказчиком программа включала средство обработки команд драйвера, переданных через указанное средство предварительного синтаксического анализа.

Таким образом, вложенная заказчиком программа, может выполнять следующие действия:

- либо не предпринимает никаких действий, когда ответные сигналы, сформированные основной программой передаются только во внешнюю программу заказчика;

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

Предпочтительно, чтобы программа, вложенная заказчиком, содержала средство для выбора стратегии предварительного синтаксического анализа ответного сигнала, применяемого указанным средством предварительного синтаксического анализа ответного сигнала среди набора стратегий предварительного синтаксического анализа ответных сигналов, таких как:

- ответные сигналы, формируемые средством выполнения, которые передаются только внешней программе заказчика;

- ответные сигналы, формируемые средством выполнения, которые передаются только программе, вложенной заказчиком;

- ответные сигналы, формируемые средством выполнения, которые передаются программе, вложенной заказчиком, и внешней программе заказчика.

Предпочтительно, чтобы указанный блок радиосвязи был бы включен в устройство, относящееся к следующей группе:

- терминалы систем радиосвязи;

- устройства, отличные от терминалов радиосвязи, но требующие беспроводной связи;

- модемы.

Предпочтительно, чтобы указанная основная программа содержала бы, по меньшей мере, одно основное приложение, связанное с набором функций выполнения, каждая из которых позволяет выполнить, по меньшей мере, одну из упомянутых команд драйвера. Каждая из упомянутых основных и вторичных приложений заказчика связана с набором исходных функций, причем каждая из них обеспечивает посылку или получение команды драйвера или ответных сигналов на команды драйвера, посланных основному приложению или полученных от него. Основная программа и/или указанная программа, вложенная заказчиком, содержит прикладной интерфейс, используемый для связи указанных исходных функций с указанными функциями выполнения.

Такая конфигурация должна ограничить затраты на развитие системы, благодаря тому факту, что интерфейсное приложение (далее также называемое прикладной библиотекой интерфейса) может использоваться с различными приложениями заказчика (основные приложения) или даже с различным основным программным обеспечением, по мере его разработки.

В одном выгодном варианте изобретения, набор исходных функций, связанных с основным приложением заказчика, в частности, содержит исходную функцию инициализации основного приложения заказчика, которая выполняется при включении блока радиосвязи.

Предпочтительно, чтобы набор исходных функций, связанный с основным приложением заказчика, содержал бы исходную функцию для подписки на услуги по посылке сообщений, исходящих от основной программы. Во время этой подписки основное приложение заказчика посылает адрес исходной функции обработки сообщения, по которому основное приложение заказчика хотело бы получить сообщения от основной программы или послать сообщение на основную программу.

Этот механизм подписки на обслуживание по посылке сообщений, исходящих от основной программы, дает возможность основному приложению заказчика вызвать все функции выполнения, обеспечиваемые основной программой, при возможности получения сообщений, посланных основной программой для выполнения этих функций.

Предпочтительно, набор исходных функций, связанных с вторичным приложением заказчика, содержит, в частности, исходную функцию для инициализации вторичного приложения заказчика, вызванного основным приложением заказчика.

Предпочтительно, набор исходных функций, связанных с вторичным приложением заказчика, содержит исходную функцию для подписки на обслуживание для посылки сообщений, исходящих от основной программы. При использовании этой подписной услуги вторичное приложение заказчика посылает адрес исходной функции обработки исходящего сообщения на основную программу, в которой вторичное приложение заказчика хотело бы получать сообщения, исходящие от основной программы.

Преимущественно, указанная исходная функция инициализации вторичного приложения заказчика содержит, по меньшей мере, один параметр, допускающий использование механизма диалога между основным приложением заказчика и вторичным приложением заказчика.

Предпочтительно, чтобы набор исходных функций, связанных с вторичным приложением заказчика, также содержал бы исходную функцию для остановки вторичного приложения, вызванного основным приложением заказчика.

Предпочтительно, чтобы набор исходных функций, связанных с вторичным приложением заказчика, содержал бы исходную функцию для снятия подписки упомянутой службы для посылки сообщений, исходящих от основной программы.

Таким образом, основному приложению заказчика необходимо только знать эту точку диалога (исходной функции для инициализации вторичного приложения заказчика) и описанной ниже другой функции (исходной функции для остановки вторичного приложения заказчика). Следовательно, это простое и эффективное решение проблемы диалога между основным приложением заказчика и вторичным приложением заказчика. Разработчик вторичного приложения заказчика свободен от необходимости разрабатывать отдельный вариант для каждого заказчика, который желает интегрировать его в свои основные приложения. Все, что он должен сделать - сообщить заказчику об упомянутых выше двух точках диалога.

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

Кроме того, механизм диалога между основным приложением заказчика и вторичным приложением заказчика дает возможность вторичному приложению заказчика уведомить заказчика основного приложения о результатах выполнения его задачи (или задач). Диалог может быть однонаправленный или осуществляться в обоих направлениях.

Преимущественно, указанный тип сообщения принадлежит группе, включающей:

- сообщение, содержащее ответный сигнал на команды драйвера, ранее посланные основной программе программой, вложенной заказчиком;

- сообщение, содержащее незапрашиваемую команду драйвера;

- сообщение, содержащее команду драйвера, посланную внешней программой заказчика через основную программу;

- сообщение, содержащее ответный сигнал, вытекающий из выполнения команды драйвера, посланной внешней программой заказчика или основной программой;

- сообщение, посланное после истечения времени ожидания.

В одном предпочтительном варианте изобретения, указанный набор команд драйвера представляет собой набор стандартных команд AT. Это обеспечивает быстрое развитие программ, вложенных заказчиком, поскольку команды AT (команды "Внимание") хорошо известны и уже используются для разработки внешних приложений заказчика (хранящимся в терминальном оборудовании). Это также облегчает развитие программного обеспечения заказчика, основанного на известных внешних приложениях.

Изобретение также относится к процессу выполнения программ заказчика для управления блоком радиосвязи, при этом указанный блок радиосвязи содержит и выполняет основную программу, в частности, исполняющую функции радиосвязи. Указанная основная программа также содержит средство для выполнения команд драйвера, посланных основной программе указанным программным драйвером заказчика и входящей в заранее заданный набор команд драйвера. Согласно изобретению указанный блок радиосвязи также содержит и выполняет, по меньшей мере, одну программу заказчика, называемую программой, вложенной заказчиком, включающую основную программу заказчика и, по меньшей мере, одно вторичное приложение заказчика, подчиненное основному приложению заказчика, при этом операции обработки, выполняемой указанной программой, вложенной заказчиком, распределяются между указанным основным приложением заказчика и указанным, по меньшей мере, одним вторичным приложением заказчика. Программа, вложенная заказчиком, и основная программа ведут диалог друг с другом, в результате чего программа, вложенная заказчиком, играет, по меньшей мере, одну из следующих двух ролей:

- роль указанного программного драйвера заказчика для посылки команд драйвера к основной программе и приема ответного сигнала о результате выполнения некоторых команд драйвера от основной программы;

- роль управляющей команды заказчика, которая управляет выполнением команд драйвера, посланных указанным программным драйвером заказчика, при этом программный драйвер заказчика вызывает внешнюю прикладную программу заказчика, хранимую в памяти и выполняемую терминальным оборудованием, взаимодействующим с блоком радиосвязи.

Другие характеристики и преимущества изобретение станут очевидны из последующего подробного описания предпочтительного варианта изобретения на примере его выполнения со ссылками на сопровождающие чертежи, на которых:

на фигуре 1 представлена упрощенная схема конкретного варианта блока радиосвязи согласно настоящему изобретению, на которой показаны основное приложение заказчика и вторичное приложение заказчика;

на фигуре 2 показана реализация существующей методики управления блоком радиосвязи с помощью терминального оборудования;

на фигуре 3 показан механизм запуска основного приложения заказчика и подписки этого приложения на обслуживание посылки сообщений, исходящих от основной программы;

на фигуре 4 показан механизм запуска вторичного приложения заказчика и подписки этого приложения на обслуживание посылки сообщений, исходящих от основной программы;

на фигуре 5 показан механизм для остановки вторичного приложения заказчика и для снятия с подписки этого приложения на обслуживание посылки сообщений, исходящих от основной программы;

на фигуре 6 показан пример обработки исходящего сообщения (посылка команды и прием соответствующего ответного сигнала), которая может быть выполнена вторичным приложением заказчика, если блок радиосвязи работает в соответствии с первым вариантом изобретения, в котором вложенная заказчиком программа действует как управляющая программа заказчика.

Следовательно, изобретение относится к блоку радиосвязи, хранящему и выполняющему основную программу и, по меньшей мере, одну программу, вложенную заказчиком, используя один и тот же комплект ресурсов (процессор и память).

Традиционно, конкретная основная программа (например, "программа глобальной система мобильной связи GSM") осуществляет функции радиосвязи и включает средство выполнения команд драйвера (посланных программным драйвером заказчика).

Вложенная заказчиком программа (цель, определенная в настоящем изобретении), может действовать как:

- программный драйвер заказчика и/или

- управляющая программа заказчика.

В остальной части этого описания подразумевается, что команды драйвера - команды AT. Однако ясно, что настоящее изобретение не ограничено этим типом команд драйвера.

В конкретном варианте, показанном на фигуре 1, основная программа 3 включает основную прикладную программу 3а, основанную, в частности, на наборе функций выполнения, каждая из которых предоставляет возможность выполнения, по меньшей мере, одной команды AT.

Кроме того, вложенная заказчиком программа 6, содержит:

- основное приложение заказчика 6а, связанное с набором исходных функций, каждая из которых позволяет послать команды AT в основное приложение 3а или обеспечивает прием команды AT из этого приложения;

- вторичное приложение заказчика 6с, также связанное с набором исходных функций, аналогичных упомянутым выше;

- интерфейсное приложение 6b, обеспечивающее связь исходных функций (основного приложения заказчика 6а) с функциями выполнения (основного приложения 3а).

Таким образом, основное приложение заказчика 6а связывается с приложением основной программы 3а через интерфейсное приложение 6b. Точно так же вторичное приложение заказчика 6с связывается с приложением основной программы 3а через интерфейсное приложение 6b.

Следовательно, каждое приложение (основное 6а, вторичное 6с и интерфейс 6b) содержат прикладной программный интерфейс "API". Отметим, что API это описание правил связи, соответствующих определенному функциональному узлу.

Основное приложение заказчика 6а содержит блок "обязательное приложение API", формирующий функции описания интерфейса, которые должны быть определены в основном приложении заказчика.

Вторичное приложение заказчика 6с также содержит блок "обязательное приложение API" (частично идентичный блоку с тем же названием, включенным в основное приложение заказчика), формирующий функции описания интерфейса, которые будут определены во вторичном приложении заказчика.

Интерфейсное приложение (или прикладная интерфейсная библиотека) 6b, содержит три следующих блока:

- блок "команд AT программного интерфейса", формирующий интерфейс, описывающий доступ к командам AT; этот интерфейс описывает функции, имеющиеся в прикладной библиотеке интерфейса;

- блок "операционная система программного интерфейса", формирующая интерфейс, описывающий доступ к функциям операционной системы; этот интерфейс описывает функции, имеющиеся в прикладной библиотеке интерфейса;

- блок "стандартный программный интерфейс", формирующий интерфейс, описывающий доступ к стандартным функциям; этот интерфейс описывает функции, имеющиеся в прикладной библиотеке интерфейса.

В основной программе 3 основное приложение 3а содержит:

- блок "команд AT программного интерфейса API", аналогичный блоку с тем же названием, включенным в интерфейсное приложение 6b;

- блок "операционная система программного интерфейса" (OS API), аналогичный блоку с тем же названием, включенным в интерфейсное приложение 6с;

Основное приложение 3а формирует ядро основной программы 3, а основное приложение заказчика 6а, вторичное приложение 6с и интерфейсное приложение 6b формируют ядро вложенной заказчиком программы 6.

Например, интерфейсное приложение 6b может быть двоичным файлом в виде предварительно составленной библиотеки.

Основное приложение заказчика 6а - двоичный файл, полученный динамичным редактированием множества объектных файлов (которые сами являются результатом компиляции исходных файлов).

Следующие два варианта могут рассматриваться для вторичного приложения заказчика 6с:

- либо оно поставляется в виде объектного файла, и в этом случае объектный файл принимается во внимание во время динамичного редактирования, чтобы создать двоичный файл, содержащий основное приложение заказчика 6а. Иными словами, конкретный двоичный файл содержит основное приложение заказчика и вторичное приложение заказчика;

- либо оно поставляется непосредственно в виде двоичного файла. Иными словами, основное приложение заказчика 6а и вторичное приложение заказчика 6с содержатся в двух различных двоичных файлах.

Вложенная заказчиком программа 6 и основная программа 3 каждая использует отдельную часть той же самой оперативной памяти. Заказчик определяет размер стека памяти, необходимого для правильного выполнения программы, вложенной заказчиком. Попытка одной из этих двух программ обратиться к части оперативной памяти, зарезервированной для другой программы, остановит всю операцию.

Теперь мы представим механизм запуска основного приложения заказчика 6а и подписку этого приложения на обслуживание посылки сообщений, исходящих от основной программы 3, со ссылкой на фигуру 3.

Элементы, традиционно включенные в блок радиосвязи и описанные выше со ссылкой на фигуру 2 (известное устройство), имеют те же самые числовые позиции. Таким образом, блок радиосвязи 1 содержит и выполняет основную программу 3, в частности, содержит средство для выполнения команд AT.

Кроме того, согласно первому варианту изобретения и как представлено выше со ссылкой на фигуру 1, блок радиосвязи 1 также содержит и выполняет программу 6, вложенную заказчиком, которая действует как программный драйвер заказчика или как управляющая программа заказчика, и, в частности, содержит вложенное заказчиком основное приложение 6а, вторичное приложение заказчика 6с и интерфейсное приложение 6b.

Работа этого механизма при запуске основного приложения заказчика и подписки на обслуживание посылки сообщений может быть представлена следующим образом:

- стадия "1": основная программа 3 обнаруживает присутствие основного приложения заказчика 6а и запускает это приложение;

- стадия "2": основное приложение заказчика 6а запускается через интерфейсное приложение 6b, которое вызывает исходную функцию для инициализации основного приложения заказчика 6а в пределах основного приложения заказчика 6а. Эта исходная функция ("wm_apmAppliInit") подробно описана ниже;

- стадия "3": в пределах основного приложения заказчика 6а исходная функция "wm_apmAppliInit" инициализирует основное приложение заказчика. Как подробно объяснено на следующих стадиях ("4"-"6"), эта инициализация, в частности, включает передачу адреса исходной функции основной программе 3 (например "wm_apmAppliParser") с тем, чтобы основное приложение заказчика 6а могло получать сообщения, исходящие от основной программы;

- Стадия "4": основное приложение заказчика 6а вызывает исходную функцию для подписки на обслуживание посылки сообщений, исходящих от основной программы ("wm_osMsgParserSubscribe"). Эта исходная функция подробно описана ниже;

- Стадия "5": интерфейсное приложение 6b вызывает соответствующую функцию (или функции) выполнения для регистрации подписки на обслуживание посылки сообщений к основному приложению заказчика 6а, в пределах основной программы 3;

- Стадия "6": основная программа 3 производит регистрацию, требуемую основным приложением заказчика 6а, через интерфейсное приложение 6b.

Согласно одному варианту изобретения основное приложение заказчика 6а вызывает исходную функцию "wm_osMsgParserSubscribe" по желанию в любое время (независимо от выполнения исходной функции инициализации основного приложения заказчика 6а).

Теперь мы опишем механизм для запуска вторичного приложения заказчика 6с и для его подписки на обслуживание для посылки сообщений от основной программы 3 со ссылкой на фигуру 4.

Работа этого механизма может быть представлена следующим образом:

- стадия "1": после получения сообщения в своей исходной функции "wm_apmAppliParser()", основное приложение заказчика 6а вызывает исходную функцию вторичного приложения заказчика 6с, а именно, исходную функцию для инициализации вторичного приложения заказчика 6с ("wm_app2Pipe(init)"). Эта исходная функция (которая должна быть известна основному приложению заказчика 6а) подробно описана ниже;

- стадия "2": исходная функция "wm_app2Pipe (init)" во вторичном приложении заказчика 6с инициализирует вторичное приложение заказчика 6с. Как подробно описано в следующих стадиях ("3"-"5"), эта инициализация состоит, в частности, в посылке на основную программу 3 адреса исходной функции (например, "wm_app2MsgParser"), который вторичное приложение заказчика 6с использует для получения сообщения, исходящего от основной программы 3;

- стадия "3": вторичное приложение заказчика 6с вызывает исходную функцию для подписки на обслуживание для посылки сообщений, исходящих от основной программы ("wm_osMsgParserSubscribe"). Эта исходная функция подробно описана ниже;

- стадия "4": интерфейсное приложение 6b вызывает соответствующую функцию (или функции) выполнения в основной программе 3 для регистрации подписки на обслуживание для посылки сообщений, адресованных вторичному приложению заказчика 6с;

- стадия "5": основная программа 3 осуществляет регистрацию, требуемую вторичным приложением заказчика 6с, через интерфейсное приложение 6b.

После того как вторичное приложение заказчика 6с было, таким образом, инициировано, оно выполняет свои функции (обработку исходящего сообщения или решение задачи) независимо от основного приложения 6а. Как подробно описано ниже, оно использует набор функций выполнения, поставляемых основной программой 3 для этой цели.

В одном варианте изобретения вторичное приложение заказчика 6с вызывает исходную функцию "wm_osMsgParserSubscribe" всякий раз, когда это необходимо (независимо от выполнения исходных функций для инициализации вторичного приложения заказчика 6с).

Отметим, что исходная функция инициализации вторичного приложения заказчика может содержать, по меньшей мере, один параметр для создания механизма диалога между основным приложением заказчика 6а и вторичным приложением заказчика 6с. Эта характеристика изобретения подробно описана ниже.

Теперь мы опишем механизм остановки вторичного приложения заказчика 6с и снятия его с подписки на обслуживание посылки сообщений, исходящих от основной программы 3, со ссылкой на фигуру 5.

Работа этого механизма может быть описана следующим образом:

- стадия "1": после получения сообщения в исходной функции "wm_apmAppliParser()", основное приложение заказчика 6а вызывает исходную функцию вторичного приложения заказчика 6с, а именно, исходную функцию для остановки вторичного приложения заказчика 6с ("wm_app2Pipe(stop)"). Эта исходная функция (которая должна быть известна основному приложению заказчика 6а), подробно описана ниже;

- стадия "2": исходная функция "wm_app2Pipe(stop" во вторичном приложении заказчика 6с выполняет соответствующую обработку, чтобы остановить вторичное приложение заказчика 6с. Как описано в последующих стадиях ("3"-"5"), для вторичного приложения заказчика 6с эта обработка состоит, в частности, в снятии с подписки на обслуживание на посылку сообщений, исходящих от основной программы 3;

- стадия "3": вторичное приложение заказчика 6с вызывает исходную функцию для снятия с подписки на обслуживание посылки сообщений, исходящих от основной программы ("wm_osMsgParserUnsubscribe"). Эта исходная функция подробно описана ниже;

- стадия "4": интерфейсное приложение 6b в основной программе 3 запрашивает соответствующую функцию выполнения, вызывает функцию снятия с подписки на обслуживание посылки сообщений, адресованных вторичному приложению заказчика 6с;

- стадия "5": основная программа 3 останавливает регистрацию, запрашиваемую вторичным приложением заказчика 6с, через интерфейсное приложение 6b.

Теперь мы опишем пример обработки исходящего сообщения, которая может быть сделана вторичным приложением заказчика для освобождения основного приложения заказчика 6а, со ссылкой на фигуру 6.

В этом примере, принимается что:

- блок радиосвязи работает согласно первому варианту изобретения, в котором программа, вложенная заказчиком, действует как драйвер заказчика;

- обработка состоит в посылке команды вторичным приложением заказчика 6с и получения соответствующего ответного сигнала;

- вторичное приложение заказчика 6с было инициализировано и подписано на обслуживание для посылки сообщений от основной программы 3 (см. фигуру 4);

- во время подписки вторичное приложение заказчика 6с выдало "wm_app2MsgParser()" как исходную функцию приема сообщения.

Весь процесс по этому примеру обработки исходящего сообщения может быть отображен следующим образом:

- стадия "1": вторичное приложение 6с вызывает исходную функцию, чтобы послать одну или несколько команд AT основной программе 3 с тем, чтобы основная программа могла их выполнить (следовательно, осуществляется "обработка команды AT"). Эта исходная функция ("Wm_atSendCommand") подробно описана ниже;

- стадия "2": интерфейсное приложение 6а вызывает соответствующую функцию (или функции) выполнения вызова функции выполнения команды AT средством выполнения 4, включенным в основную программу 3;

- стадия "3": средство выполнения 4 выполняет команду (или команды AT;

- стадия "4": после выполнения команды средство выполнения 4 посылает ответный сигнал (или ответные сигналы на вторичное приложение заказчика 6с (при условии, что исходная функция сконфигурирована на такое действие);

- стадия "5": этот или эти ответные сигналы посылаются вторичному приложению заказчика 6с, через интерфейсное приложение 6а;

- стадия "6": исходная функция приема и обработки сообщений "wm_app2MsgParser()" обрабатывает ответный сигнал средствами вторичного приложения заказчика 6с. Эта исходная функция является функцией, которую вызывает вторичное приложение заказчика 6с при регистрации для приема сообщений, исходящих от основной программы 3. Сообщение, которое содержит вышеупомянутый ответный сигнал (или сигналы) является параметром этой исходной функцией приема и обработки сообщений.

Отметим, что описанная выше фигура 6 перенесена из фигуры 3 французской патентной заявки FR 0103909, поданной заявителем (Wavecom Company) 22 марта 2001 года. Единственное отличие заключается в том, что в данном случае используется вторичное приложение заказчика (вместо приложения, вложенного заказчиком в патентной заявке FR 0103909).

Предусмотрен и второй вариант изобретения, в котором программа, вложенная заказчиком, действует как управляющая программа заказчика. В этом случае, вторичное приложение заказчика может, например, выполнять следующую обработку:

- использование механизма предварительного синтаксического анализа команды, который позволяет вторичному приложению заказчика фильтровать или отслеживать команды, исходящие от внешней программы заказчика;

- использование механизма предварительного синтаксического анализа ответного сигнала, который позволяет вторичному приложению заказчика фильтровать или отслеживать ответные сигналы, исходящие от внешней программы заказчика.

Мы не будем описывать эти примеры обработки исходящего сообщения, выполняемого вторичным приложением заказчика, более подробно (не показано на фигурах), поскольку в этом случае блок радиосвязи работает согласно второму варианту изобретения, описанному выше.

Однако следует отметить, что текст и фигуры, связанные с применением упомянутых выше двух механизмом предварительного синтаксического анализа (для команд и ответных сигналов) осуществляемого вторичным приложением заказчика, могут быть получены, делая следующие перемещения:

- начало описания от фигур 4-7 во французской патентной заявке FR 0103909 и соответствующий объяснительный текст, и

- рассматривая вторичное приложение заказчика вместо "приложения, вложенного заказчиком" в патентной заявке FR 0103909.

Приложение 1 содержит подробное описание некоторых исходных функций, на которых основаны приложение заказчика 6а и вторичное приложение заказчика 6с.

В настоящем изобретении можно также использовать, по меньшей мере, одну из следующих дополнительных команд AT в дополнение к стандартным командам способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 ATспособ выполнения программы заказчика блоком радиосвязи, патент № 2298298 :

- команду на загрузку программы заказчика (AT+WDWL), чтобы внешнее приложение заказчика могло загружать новые программы заказчика в блок радиосвязи;

- команду деактивации (AT+WOPEN), позволяющую внешней программе заказчика деактивировать программы, вложенные заказчиком.

Приложение 1

Подробное описание некоторых исходных функций, на которых основаны основное приложение заказчика и вторичное приложение заказчика

A1) "wm_apmAppliInit":

Функция инициализации основного приложения заказчика; эта функция вызывается при пуске блока радиосвязи.

Точное имя

Void wm_apmAppliInit (wm_apmInitType_e InitType)

Параметры:

InitType

Этот параметр определяет, как запускается инициализация, величины:

Typedef enum

{

WM_APM_POWER_ON,

WM_APM_REBOOT_FROM_EXCEPTION}

wm_apmInitType_e;

WM_APM_POWER_ON

Нормальный пуск

WM_APM_REBOOT_FROM_EXCEPTION

Блок перезапущен после исключения.

А2) "wm osMsgParserSubscribe()":

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

Точное имя

Void wm_osMsgParserSubscribe (void

*SubscribeFunction) (wm_apmMsg_t*)

Параметры:

SubscribeFunction (wm_apmMsg_t*): функция, обеспечиваемая вызывающей программой (основным или вторичным приложением заказчика) с тем, чтобы основная программа могла посылать ему сообщения. Прототип этой вложенной функции описан ниже ("wm_apmAppliParser" для основного приложения заказчика, или "wm_app2MsgParser" для вторичного приложения заказчика).

Возвратная величина:

Возвратный параметр указывает, была ли подписка принята (TRUE) (истина) или нет (FALSE) (ложь).

A3) "wm osMsgParserUnsubscribe ()":

Функция остановки регистрации приложения заказчика (основного или вторичного) с основной программой на обслуживание для приема сообщений, исходящих от основной программы. Основная программа игнорирует ранее записанную в память функцию.

Точное имя

Bool

wm_osMsgParserUnsubscribe(void(*SubsFunction)(wm_apmMsg_t*))

Параметры:

SubsFunction (wm_apmMsg_t*): функция, обеспечиваемая вызывающей программой (основное или вторичное приложение заказчика) с тем, чтобы основная программа могла посылать сообщения этому приложению. Эта функция должна быть той же самой, что и функция, выданная при подписке на это обслуживание, иначе подписка не будет остановлена.

Возвратная величина:

Возвратный параметр указывает, была ли подписка остановлена (TRUE) или нет (FALSE).

A4)"wm app2Pipe (функция FunctionType,...)":

Прототип функции, которая обеспечивается вторичным приложением заказчика для основного приложения заказчика, чтобы иметь возможность диалога с ним. Эта функция имеет переменные параметры, а число и тип или аргументы зависят от первого параметра "функции".

Точное имя

Void m_app2Pipe (функция FunctionType,...);

Параметры:

Функция: требуемая функция. Эта функция подразумевает число и тип параметров следующим образом. Некоторые величины зарезервированы (например, от 0 до 127), а другие (например, от 128 до 255) оставлены свободными для использования в конкретных диалогах между основным приложением заказчика и вторичным приложением заказчика.

А4-1) Переменные параметры для функции=

WM_APP_FUNCTION_INIT:

Void wm_app2Pipe (

FunctionType_t function,

InitType_t Init,

Void (*MainAppDialogFunction) (wm_apmMsg_t*)

Void* (*SecondaryAppDialogFunction)(wm_apmMsg_t*),

Вторичное приложение должно быть инициализировано и должно выполнить соответствующую обработку.

InitType_t Init: тип инициализации

(APM_INIT_POWER_On или APM_INIT_REBOOT)

Void (*Main AppDialogFunction) (wm_apmMsg_t*): адрес функции, которую вторичное приложение заказчика должно использовать, чтобы послать сообщения основному приложению заказчика. Если основное приложение заказчика не требует этой функции, то посылается NULL (нулевая величина).

Void*(*SecondaryAppDialogFunction)(wm_apmMsg_t*): Вторичное приложение заказчика должно дать адрес функции, которую оно предусматривает для основного приложения заказчика. Если вторичное приложение заказчика не обеспечивает эту функцию, оно должно установить эту величину в нуль.

А4-2) Переменные параметры для функции=

WM_APP_FUNCTION_STOP:

Void wm_app2Pipe

FunctionType_t функция,

);

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

A5)"wm apmAppliParser"

Прототип исходной функции, которую основное приложение заказчика должно обеспечить, чтобы получить сообщения, исходящие от основной программы. Параметр, формирующий сообщение этой функции обработки исходящего сообщения (также называемый функцией "приема"), в частности, содержит команду AT или ответный сигнал на команду AT.

Отметим, что все, что описано ниже, также применимо к исходной функции, в которой вторичное приложение заказчика хотело бы получать сообщения, исходящие от основной программы. Все, что меняется, это само имя функции, например, "wm_app2MsgParser" вместо "wm_apmAppliParser").

Точное имя

Bool wm_apmAppliParser (wm_apmMsg_t* Message);

Параметры:

Сообщение

Структура сообщения отлична для каждого типа полученного сообщения:

Typedef struct

{

SI 6 MsgTyp;

/*"MsgTyp" представляет собой тип полученного сообщения, определяющий соответствующую структуру тела сообщения*/ wm_apmBody_t Dody; /*"Dody" - определенное тело сообщения*/

} wm_apmMsg_t;

Величины "MsgTyp":

WM_AT_SEND_RSP

Сообщение содержит ответный сигнал на команду AT, предварительно посланную основной программе программой вложенной заказчиком

WM_AT_UNSOLICITED

Сообщение содержит незапрашиваемую команду AT

WM_AT_CMD_PRE_PARSER

Сообщение содержит команду AT, посланную внешней программой заказчика через основную программу.

WM_AT_RS P_PRE_PARSER

Сообщение содержит ответный сигнал AT, вытекающий из выполнения основной программой команды AT, поданной из внешнего приложения.

WM_OS_TIMER

Сообщение послано после истечения времени ожидания

Структура тела:

объединение typedef

{

/*Следующее содержит все конкретные структуры, связанные с типом сообщения "MsgTyp"*/

способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 способ выполнения программы заказчика блоком радиосвязи, патент № 2298298 способ выполнения программы заказчика блоком радиосвязи, патент № 2298298

Параметры:

AtString (строка AT)

Этот параметр может быть любым типом строки команды AT с использованием символов ASCII. Несколько строк могут быть посланы одновременно.

AtStringSize (размер строки)

Размер предыдущего параметра: AtString.

ResponseType (тип ответного сигнала)

Typedef enum {

WM_AT_SEND_RSP_TO_EMBEDDED, /*по умолчанию*/

WM_AT_SEND_RSP_TO_EXTERNAL, WM_AT_SEND_RSP_BROADCAST

} wm_atSendRspType_e;

WM_AT_SEND_RSP_TO_EMBEDDED

Все ответные сигналы переадресованы заказчику вложенного приложения. Это режим, заданный по умолчанию.

WM_AT_SEND_RSP_TO_EXTERNAL

Все ответные сигналы переадресованы внешнему приложению заказчика (основному или вторичному).

WM_AT_SEND_RSP_BROADCAST

Все ответные сигналы переадресованы (переданы по радио) приложению заказчика (основному или вторичному и на внешнюю программу заказчика (персональный компьютер).

A7)"wm AtUnsolicitedSubscription"

Регистрационная функция с основной программой для обслуживания по приему незапрашиваемых команд AT, в которых один параметр указывает на программу-получатель, а именно приложение, вложенное заказчиком, (основное или вторичное) и/или внешнее приложение заказчика, на которую должна быть передана каждая из незапрашиваемых команд AT.

Точное имя

Void wm_atUnsolicitedSubscription(wm_atUnsolicited_e

Unsolicited);

Параметры:

Незапрашиваемый

Этот параметр описывает действие, выполняемое в момент прибытия незапрашиваемой команды AT.

Typedef enum

WM_AT_UNSOLICITED_TO_EXTERNAL, /*по умолчанию*/

WM_AT_UNSOLICITED_TO_EMBEDDED,

WM_AT_UNSOLICITED_BROADCAST,} wm_atUnsolicited_e;

WM_AT_UNSOLICITED_TO_EXTERNAL

Все незапрашиваемые команды будут переданы на внешнее приложение заказчика (персональный компьютер) (режим по умолчанию).

WM_AT_UNSOLICITED_TO_EMBEDDED

Все незапрашиваемые команды будут переданы приложению, вложенному заказчиком.

WM_AT_UNSOLICITED_BROADCAST

Все незапрашиваемые команды будут переданы на внешнее приложение заказчика (персональный компьютер) и в приложение, вложенное заказчиком.

A8)"wm atCmdPreParserSubscribe"

Регистрационная функция с основной программой для службы предварительного синтаксического анализа команд AT, в которой параметр указывает на приложение (или приложения) назначения (а именно, на приложение, вложенное заказчиком (основное или вторичное) и/или основное приложение, в которое должна быть направлена каждая команда AT, исходящая из внешнего приложения.

Точное имя

Void wm_atCmdPreParserSubscribe (wm_atCmdPreSubscribe_e

SubscribeType);

Параметры

SubscribeType

Этот параметр описывает действие, выполняемое в момент прибытия команды AT

Typedef enum

WM_AT_CMD_PRE_WAVECOM_TREATMENT /*по умолчанию*/

WM_AT_ CMD_PRE_EMBEDDED_TREATMENT,

WM_AT_ CMD_PRE_BROADCAST,

} Wm_atCmdPreSubscribe_e;

WM_AT_CMD_PRE_WAVECOM_TREATMENT

Приложение, вложенное заказчиком (основное или вторичное, не желает фильтровать (или отслеживать) команды, посланные заказчиком на внешнее приложение (режим по умолчанию).

WM_AT_CMD_PRE_EMBEDDED_TREATMENT

Приложение, вложенное заказчиком (основное или вторичное), желает фильтровать (или отслеживать) команды, посланные заказчиком на внешнее приложение.

WM_AT_CMD_PRE_BROADCAST

Приложение, вложенное заказчиком (основное или вторичное), желает отслеживать команды, посланные внешним приложением заказчика.

A9)"wm atRspPreParserSubscribe"

Регистрационная функция с основной программой для службы предварительного синтаксического анализа команд AT, в которой параметр указывает на программу - получатель (а именно, внешнее приложение заказчика (основное или вторичное) и/или вложенное заказчиком приложение), к которому должна быть направлена каждая команда AT, исходящая от внешнего приложения.

Точное имя

Void wm_atRspPreParserSubscribe (wm_atRspPreSubscribe_e

SubscribeType);

Параметры:

SubscribeType

Этот параметр описывает действие, выполняемое в момент прибытия команды AT

Typedef enum

WM_AT_RSP_PRE_WAVECOM_TREATMENT, /*по умолчанию*/

WM_AT_RSP_PRE_EMBEDDED_TREATMENT,

WM_AT_RS P_PRE_BROADCAST,

} wm_atRspPreSubscribe_e;

WM_AT_RSP_PRE_WAVECOM_TREATMENT

Приложение, вложенное заказчиком (основное или вторичное), не желает фильтровать (или отслеживать) ответные сигналы, посланные на внешнее приложение заказчика (режим по умолчанию).

WM_AT_RSP_PRE_EMBEDDED_TREATMENT

Приложение, вложенное заказчиком (основное или вторичное), желает фильтровать (или отслеживать) ответные сигналы, посланные на внешнее приложение заказчика.

WM_AT_RSP_PRE_BROADCAST

Приложение, вложенное заказчиком (основное или вторичное), желает отслеживать ответные сигналы, посланные на внешнее приложение заказчика.

А10) "wm atSendRspExtemalApp"

Функция посылки, по меньшей мере, одного ответного сигнала на внешнюю программу заказчика, через основную программу. Эта функция может быть использована только в случае предшествующей регистрации предварительного синтаксического анализа, включая, например, переназначение копии ответных сигналов программе, вложенной заказчиком (основной или вторичной).

Точное имя

Void wm_atSendRspExtemalApp (u16 AtStringSize,

Char *AtString,);

Параметры:

AtString (Строка AT)

Может быть строкой любой типа ответного сигнала AT, в символах ASCII

AtStringSize (Размер строки AT)

Размер предыдущего параметра: AtString

A11)"DataFlowService"

Функция передачи и/или приема данных программы, вложенной заказчиком, через основную программу, после того как был установлен канал передачи данных.

A12)"wm osStartTimer"

Функция запуска времени ожидания, параметр пусковой функции, указывающий, в какое время должен быть выполнен запуск.

A13)"wm osStopTimer"

Функция останова времени ожидания, параметр упомянутой функции останова указывает, когда должно быть остановлено время ожидания.

Класс H04Q7/32 оборудование движущегося абонента

система и способ для периодического масштабирования в режиме ожидания в широкополосной системе связи беспроводного доступа -  патент 2336664 (20.10.2008)
прозрачные широковещательные услуги для многорежимного беспроводного устройства -  патент 2332813 (27.08.2008)
схема выбора стратегии избыточности -  патент 2328832 (10.07.2008)
навигационное устройство, способ и программа навигации -  патент 2328702 (10.07.2008)
способ хранения и доступа к данным в мобильном устройстве и модуль пользователя -  патент 2326509 (10.06.2008)
выбор системы для беспроводных услуг предоставления данных -  патент 2325787 (27.05.2008)
сотовый телефон -  патент 2319322 (10.03.2008)
способ и устройство для эффективного выбора и обнаружения беспроводной системы связи -  патент 2317655 (20.02.2008)
способ, система и сетевой объект для обеспечения передачи цифрового вещания -  патент 2316912 (10.02.2008)
система воспроизведения мультимедиа в портативном устройстве -  патент 2316907 (10.02.2008)
Наверх