способ и система для обмена данными между компьютерными системами и вспомогательными дисплеями
Классы МПК: | G06F3/147 на панели индикации G06F1/16 конструктивные элементы или устройства G06F13/00 Соединение запоминающих устройств, устройств ввода-вывода или устройств центрального процессора или передача информации или других сигналов между этими устройствами |
Автор(ы): | ФУЛЛЕР Эндрю Дж. (US), ПОЛИВИ Дэниел Дж. (US), РОТЕН Мэттью П. (US), БЕРНСТЕЙН Майкл С. (US), УИНН Роджер Х. (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2005-11-22 публикация патента:
27.09.2010 |
Изобретение относится к системе и способу для передачи информации между компьютерной системой и вспомогательным устройством. Технический результат - обеспечение связи между компьютерной системой и вспомогательном устройством, чтобы обеспечить отображение контента и уведомлений на дисплее вспомогательного устройства и возможность дистанционного управления. Посредством API-вызовов программы предоставляют информацию в одном и том же формате, независимо от возможностей устройства и/или типа соединения. Платформа вспомогательного дисплея конвертирует информацию в формат, понимаемый драйвером устройства, который затем фильтрует информацию желательным образом для своего конкретного аппаратного устройства перед тем, как информация будет передана. При обратной связи возвращаются данные о состоянии и пользовательском взаимодействии с отображаемой информацией. Поставщики программного обеспечения, таким образом, могут писать код единожды, чтобы выводить информацию на вспомогательные дисплеи, в то время как производители аппаратных средств могут предписать своим устройствам работать в качестве вспомогательных дисплеев с небольшими изменениями или без изменений по отношению к существующим аппаратным средствам. 4 н. и 36 з.п. ф-лы, 10 ил.
Формула изобретения
1. Система для взаимодействия со вспомогательным устройством отображения в вычислительной среде, содержащая:
главную компьютерную систему, содержащую основное электронное устройство отображения для отображения пользователю принятых текста и изображений и содержащую компьютерную программу;
вспомогательное электронное устройство отображения, которое является второстепенным по отношению к основному электронному устройству отображения и обладает сниженными возможностями отображения по отношению к основному электронному устройству отображения и которое сконфигурировано отображать пользователю по меньшей мере одно из текста и изображений, принятых от главной компьютерной системы, при этом вспомогательное электронное устройство отображения дополнительно сконфигурировано кэшировать данные запланированных уведомлений для отображения пользователю, даже когда упомянутая компьютерная программа не работает; и
вспомогательную платформу для главной компьютерной системы, при этом вспомогательная платформа включает в себя:
а) интерфейс приложения, который принимает вызовы от компьютерной программы, работающей в главной компьютерной системе, в том числе вызов, содержащий набор из по меньшей мере одного параметра, соответствующего информации для передачи вспомогательному электронному устройству отображения, причем эта информация включает в себя содержимое для отображения на вспомогательном электронном устройстве отображения, при этом данный набор из по меньшей мере одного параметра независим от каких бы то ни было аппаратных средств конкретного вспомогательного устройства, и
b) интерфейс драйверов устройств, который соединяет вспомогательную платформу с драйвером устройства, ассоциированным со вспомогательным электронным устройством отображения, причем драйвер устройства, ассоциированный со вспомогательным электронным устройством отображения, выполнен с возможностью удалять по меньшей мере часть упомянутого содержимого, передаваемого на вспомогательное электронное устройство отображения, чтобы получить отфильтрованную совокупность содержимого, меньшую, чем та, что получена компьютерной программой для отображения на вспомогательном электронном устройстве отображения, причем данная отфильтрованная совокупность содержимого представляет собой данные запланированных уведомлений;
при этом вспомогательная платформа конвертирует упомянутое содержимое в формат, понятный драйверу устройства.
2. Система по п.1, в которой вспомогательное электронное устройство отображения представляет собой устройство мобильной связи.
3. Система по п.1, в которой вспомогательное электронное устройство отображения содержит устройство из набора типов устройств, содержащего: отдельный компьютер; экран второстепенного отображения с кнопочными исполнительными средствами; наручные часы; настенный дисплей; экран отображения; конструкцию цифрового изображения; часы; телевизор; радиоприемник; устройство воспроизведения мультимедийных данных, устройство, встроенное в или использующее главный дисплей устройства бытовой электронной аппаратуры; автомобильные, транспортные или другие предназначенные для транспортных средств модули; клавиатуры или другие устройства ввода главной компьютерной системы; пейджер; персональный цифровой секретарь.
4. Система по п.1, в которой вспомогательное электронное устройство отображения включает в себя микропрограммное обеспечение, выполненное с возможностью обработки упомянутой информации при ее приеме в частном формате.
5. Система по п.1, в которой вспомогательная платформа конвертирует упомянутую информацию в основанный на языке разметки формат, понятный драйверу устройства или микропрограммному обеспечению во вспомогательном электронном устройстве отображения.
6. Система по п.1, в которой упомянутая информация соответствует уведомлению.
7. Система по п.1, в которой по меньшей мере часть упомянутого содержимого соответствует изображению для отображения на вспомогательном электронном устройстве отображения.
8. Система по п.1, в которой по меньшей мере часть упомянутого содержимого соответствует тексту для отображения на вспомогательном электронном устройстве отображения.
9. Система по п.1, в которой второе вспомогательное устройство присоединено к компьютерной системе, при этом вспомогательная платформа поддерживает структуру данных, которая содержит данные в отношении того, какому вспомогательному устройству или устройствам должна быть направлена упомянутая информация, для компьютерной программы, работающей в главной компьютерной системе.
10. Система по п.9, в которой вызов включает в себя данные, которые указывают, что упомянутая информация должна быть направлена второму вспомогательному устройству, при этом второе вспомогательное устройство включает в себя соответствующий драйвер устройства для второго вспомогательного устройства, и вспомогательная платформа направляет упомянутую информацию драйверу устройства для второго вспомогательного устройства.
11. Система по п.1, в которой вспомогательное электронное устройство отображения сопрягается с драйвером устройства посредством беспроводного соединения с главной компьютерной системой.
12. Система по п.1, в которой вспомогательное электронное устройство отображения сопрягается с драйвером устройства посредством проводного соединения с главной компьютерной системой.
13. Система по п.1, в которой драйвер устройства отправляет информацию возврата во вспомогательную платформу в ответ на информацию, пересылаемую для связи вспомогательному устройству.
14. Система по п.13, в которой информация возврата соответствует взаимодействию пользователя со вспомогательным электронным устройством отображения.
15. Система по п.1, в котором вспомогательное электронное устройство отображения сконфигурировано отображать пользователю по меньшей мере одно из текста и изображений, когда главная компьютерная система выключается.
16. Система по п.1, в котором вспомогательное электронное устройство отображения представляет собой усовершенствованный вспомогательный дисплей, совместимый с любой информацией, которая может быть принята через вспомогательную платформу, при этом драйвер устройства представляет собой обобщенный драйвер устройства.
17. Способ взаимодействия со вспомогательным устройством отображения в вычислительной среде, содержащий этапы, на которых
принимают вызовы от компьютерной программы, работающей в главной компьютерной системе, в том числе вызов, содержащий набор из по меньшей мере одного ассоциированного параметра, который соответствует информации для передачи вспомогательному электронному устройству отображения, причем эта информация включает в себя содержимое для отображения на вспомогательном электронном устройстве отображения, и данный набор из по меньшей мере одного параметра независим от каких бы то ни было аппаратных средств конкретного вспомогательного устройства, и при этом главная компьютерная система содержит основное электронное устройство отображения для отображения пользователю содержимого текста и изображений, причем главная компьютерная система подключена к упомянутому вспомогательному электронному устройству отображения, которое обладает сниженными возможностями отображения по отношению к основному электронному устройству отображения, так что оно является второстепенным по отношению к основному электронному устройству отображения, и которое сконфигурировано отображать пользователю по меньшей мере одно из содержимого текста и изображений, принятых от главной компьютерной системы;
осуществляют доступ к упомянутой информации для передачи вспомогательному электронному устройству отображения;
определяют, что вспомогательное электронное устройство отображения обладает сниженными возможностями отображения, и удаляют посредством драйвера устройства для вспомогательного электронного устройства отображения по меньшей мере часть упомянутого содержимого упомянутой информации, чтобы получить отфильтрованную совокупность содержимого, меньшую, чем та, что получена компьютерной программой для отображения на вспомогательном электронном устройстве отображения;
конвертируют упомянутую отфильтрованную совокупность содержимого в формат, понимаемый вспомогательным электронным устройством отображения;
передают данные, соответствующие упомянутой отфильтрованной совокупности содержимого, вспомогательному электронному устройству отображения;
принимают информацию возврата от другого вспомогательного устройства, причем информация возврата соответствует сбрасыванию уведомления на этом другом вспомогательном устройстве; и
передают дополнительные данные вспомогательному электронному устройству отображения на основе упомянутой информации возврата для сбрасывания соответствующего уведомления на вспомогательном электронном устройстве отображения на основе сбрасывания уведомления на упомянутом другом вспомогательном устройстве.
18. Способ по п.17, дополнительно содержащий этап, на котором отображают отфильтрованную совокупность содержимого на вспомогательном электронном устройстве отображения.
19. Способ по п.17, в котором вызовы принимают во вспомогательной платформе, при этом способ дополнительно содержит этап, на котором осуществляют вызов к вспомогательной платформе.
20. Способ по п.17, в котором при конвертировании отфильтрованной совокупности содержимого в формат, понимаемый вспомогательным электронным устройством отображения, конвертируют отфильтрованную совокупность содержимого в основанный на языке разметки формат.
21. Способ по п.17, в котором при конвертировании отфильтрованной совокупности содержимого в формат, понимаемый вспомогательным электронным устройством отображения, конвертируют отфильтрованную совокупность содержимого в частный формат.
22. Способ по п.17, в котором при передаче данных, соответствующих отфильтрованной совокупности содержимого, отправляют данные уведомления.
23. Способ по п.17, в котором при конвертировании отфильтрованной совокупности содержимого изменяют информацию изображения.
24. Способ по п.17, в котором второе вспомогательное устройство присоединено к главной компьютерной системе, при этом способ дополнительно содержит этап, на котором осуществляют доступ к информации направления, чтобы определить, передавать ли данные, соответствующие отфильтрованной совокупности содержимого, второму вспомогательному устройству.
25. Способ по п.17, дополнительно содержащий этап, на котором принимают информацию возврата от вспомогательного электронного устройства отображения.
26. Способ по п.25, в котором информация возврата соответствует взаимодействию пользователя со вспомогательным электронным устройством отображения, при этом способ дополнительно содержит этап, на котором передают другие данные вспомогательному электронному устройству отображения на основании взаимодействия пользователя с ним.
27. Способ по п.17, в котором драйвер устройства для вспомогательного электронного устройства отображения представляет собой драйвер, специфический для упомянутого вспомогательного электронного устройства отображения.
28. Способ по п.17, дополнительно содержащий этап, на котором определяют, что основное электронное устройство отображения находится в нерабочем состоянии, и, в качестве реакции на это определение, передают отфильтрованную совокупность содержимого на вспомогательное электронное устройство отображения.
29. Способ по п.17, в котором вспомогательное электронное устройство отображения представляет собой виртуальный вспомогательный дисплей в области основного электронного устройства отображения.
30. Способ по п.22, в котором данные уведомления представляют собой данные запланированного уведомления, при этом способ дополнительно содержит этап, на котором кэшируют эти данные запланированного уведомления на вспомогательном электронном устройстве отображения для отображения пользователю, даже если компьютерная программа не работает.
31. Способ по п.17, в котором вспомогательное электронное устройство отображения не приспособлено отображать графику, при этом при удалении драйвером устройства по меньшей мере части упомянутого содержимого упомянутой информации, чтобы получить отфильтрованную совокупность содержимого, меньшую, чем та, что получена компьютерной программой для отображения на вспомогательном электронном устройстве отображения, удаляют всю графику из упомянутого содержимого.
32. Способ по п.17, в котором при удалении по меньшей мере части упомянутого содержимого упомянутой информации, чтобы получить отфильтрованную совокупность содержимого, меньшую, чем та, что получена компьютерной программой для отображения на вспомогательном электронном устройстве отображения, сокращают объем текстового содержимого, представляемого пользователю с использованием вспомогательного электронного устройства отображения.
33. Способ по п.24, в котором данные, соответствующие упомянутой информации, представляют собой уведомление о событии, при этом способ дополнительно включает в себя этапы, на которых отображают пользователю это уведомление о событии на вспомогательном электронном устройстве отображения;
принимают на вспомогательном электронном устройстве отображения пользовательский ввод, управляющий обработкой события, соответствующего данному уведомлению о событии; и
посылают в главную компьютерную систему от вспомогательного электронного устройства отображения информацию, описывающую пользовательский ввод, управляющий тем, как обрабатывать упомянутое событие.
34. Способ по п.33, в котором при приеме пользовательского ввода, управляющего обработкой упомянутого события, принимают пользовательский ввод, сбрасывающий данное событие, при этом способ дополнительно содержит этап, на котором посылают сбрасывание второму вспомогательному устройству.
35. Машиночитаемый носитель, содержащий машиноисполняемые команды, которые при их исполнении предписывают вычислительной среде
принимать вызовы от компьютерной программы, работающей в главной компьютерной системе, в том числе вызов, содержащий набор из по меньшей мере одного ассоциированного параметра, который соответствует информации для передачи вспомогательному электронному устройству отображения, причем эта информация включает в себя содержимое для отображения на вспомогательном электронном устройстве отображения, и данный набор из по меньшей мере одного параметра независим от каких бы то ни было аппаратных средств конкретного вспомогательного устройства, и при этом главная компьютерная система содержит основное электронное устройство отображения для отображения пользователю содержимого текста и изображений, причем главная компьютерная система подключена к упомянутому вспомогательному электронному устройству отображения, которое обладает сниженными возможностями отображения по отношению к основному электронному устройству отображения, так что оно является второстепенным по отношению к основному электронному устройству отображения, и которое сконфигурировано отображать пользователю по меньшей мере одно из содержимого текста и изображений, принятых от главной компьютерной системы;
осуществлять доступ к упомянутой информации для передачи вспомогательному электронному устройству отображения;
определять, что вспомогательное электронное устройство отображения обладает сниженными возможностями отображения, и удалять посредством драйвера устройства для вспомогательного электронного устройства отображения по меньшей мере часть упомянутого содержимого упомянутой информации, чтобы получить отфильтрованную совокупность содержимого, меньшую, чем та, что получена компьютерной программой для отображения на вспомогательном электронном устройстве отображения;
конвертировать упомянутую отфильтрованную совокупность содержимого в формат, понимаемый вспомогательным электронным устройством отображения;
передавать данные, соответствующие упомянутой отфильтрованной совокупности содержимого, вспомогательному электронному устройству отображения;
принимать информацию возврата от другого вспомогательного устройства, причем информация возврата соответствует сбрасыванию уведомления на этом другом вспомогательном устройстве; и
передавать дополнительные данные вспомогательному электронному устройству отображения на основе упомянутой информации возврата для сбрасывания соответствующего уведомления на вспомогательном электронном устройстве отображения на основе сбрасывания уведомления на упомянутом другом вспомогательном устройстве.
36. Считываемый компьютером носитель, содержащий исполняемые компьютером команды, которыми при их исполнении осуществляется способ, содержащий этапы, на которых
принимают вызовы от компьютерной программы, работающей в главной компьютерной системе, в том числе вызов, содержащий набор из по меньшей мере одного параметра, который соответствует информации для передачи вспомогательному электронному устройству отображения, причем эта информация включает в себя содержимое для отображения на вспомогательном электронном устройстве отображения, и данный набор из по меньшей мере одного параметра независим от каких бы то ни было аппаратных средств конкретного вспомогательного устройства, и при этом главная компьютерная система содержит основное электронное устройство отображения для отображения пользователю содержимого текста и изображений, причем главная компьютерная система подключена к множеству вспомогательных электронных устройств отображения, которые обладают сниженными возможностями отображения по отношению к основному электронному устройству отображения, так что каждое из них является второстепенным по отношению к основному электронному устройству отображения и выполнено с возможностью отображать пользователю по меньшей мере одно из текста и изображений, принятых от главной компьютерной системы, при этом по меньшей мере одно из упомянутых вспомогательных электронных устройств отображения приспособлено отображать содержимое независимо от основного электронного устройства отображения;
определяют, какому из множества типов вспомогательных электронных устройств отображения должна быть передана упомянутая информация, и для каждого вспомогательного электронного устройства отображения:
a) осуществляют доступ к упомянутой информации для передачи вспомогательному электронному устройству отображения,
b) определяют, что вспомогательное электронное устройство отображения обладает сниженными возможностями отображения, и используют драйвер устройства, специфический для этого вспомогательного электронного устройства отображения, для удаления по меньшей мере части упомянутого содержимого, чтобы получить отфильтрованную совокупность содержимого, меньшую, чем та, что получена компьютерной программой для отображения на вспомогательном электронном устройстве отображения,
c) конвертируют упомянутую отфильтрованную совокупность содержимого в формат, понимаемый этим вспомогательным электронным устройством отображения или драйвером устройства для этого вспомогательного электронного устройства отображения, и
d) передают упомянутую отфильтрованную совокупность содержимого данному вспомогательному электронному устройству отображения, причем эта отфильтрованная совокупность содержимого содержит данные запланированного уведомления; и
кэшируют эти данные запланированного уведомления на по меньшей мере одном вспомогательном электронном устройстве отображения для отображения пользователю, даже если компьютерная программа не работает.
37. Машиночитаемый носитель по п.36, при этом по меньшей мере одно из упомянутых вспомогательных электронных устройств представляет собой усовершенствованный вспомогательный дисплей.
38. Машиночитаемый носитель по п.36, при этом по меньшей мере одно из упомянутых вспомогательных электронных устройств представляет собой базовый вспомогательный дисплей.
39. Машиночитаемый носитель по п.36, при этом по меньшей мере одно из упомянутых вспомогательных электронных устройств представляет собой усовершенствованный вспомогательный дисплей, и по меньшей мере одно из упомянутых вспомогательных электронных устройств представляет собой базовый вспомогательный дисплей.
40. Машиночитаемый носитель по п.36, при этом усовершенствованный вспомогательный дисплей включает в себя конкретный стек микропрограммного обеспечения, который включает в себя компонент общеязыковой среды исполнения TinyCLR и поддерживает сериализацию объекта TinyCLR.
Описание изобретения к патенту
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение в целом относится к компьютерным системам, а более точно к усовершенствованным системе и способу для передачи информации между компьютерной системой и вспомогательным устройством.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Заявки на выдачу патента Соединенных Штатов под порядковыми номерами 10/429930 и 10/429932 в целом ориентированы на концепцию компьютерных систем, содержащих вспомогательную обработку и вспомогательные механизмы, которые обеспечивают некоторые вспомогательные вычислительные функциональные возможности. Например, небольшой жидкокристаллический дисплей (LCD) на крышке или боковой поверхности переносного компьютера может обеспечивать его владельца полезной информацией, такой как время и место встречи, даже когда дисплей главного компьютера не является беспрепятственно видимым, например, когда крышка переносного компьютера закрыта и/или питание главного компьютера отключено. Могут быть предусмотрены средства управления, такие как кнопки, чтобы предоставить пользователю возможность взаимодействовать со вспомогательным устройством, чтобы просматривать различные типы данных, к примеру, чтобы осуществлять прокрутку для просмотра по всем условленным встречам из числа календарных данных, прочитывать сообщения электронной почты, читать распоряжения и так далее.
Отчасти подобные вспомогательному LCD-экрану, встроенному в мобильный компьютер, мобильный телефон, устройство проигрывания музыки, малогабаритный персональный компьютер, персональный цифровой секретарь и так далее, могут служить в качестве вспомогательного устройства по отношению к главному компьютеру, когда подключены к нему физически и/или посредством беспроводной (например, Bluetooth или инфракрасной) линии связи, до тех пор, пока устройство запрограммировано, чтобы предоставлять своему дисплею и/или другим функциональным аспектам возможность быть использованным в качестве средства достижения цели главным компьютером. Вообще, любое устройство с возможностями ввода/вывода (I/O), которое может взаимодействовать, фактически любым образом, с компьютерной системой, потенциально может служить в качестве вспомогательного вычислительного устройства.
Однако есть многие разновидности устройств, которые могут служить в качестве вспомогательного дисплея для компьютерной системы. Например, некоторые устройства могут подключаться к компьютерной системе через кабельное подключение, такое как универсальная последовательная шина (USB), тогда как другие устройства подключаются посредством беспроводных протоколов, таких как 802.11, 802.16, или Bluetooth. Некоторые устройства, такие как «интеллектуальные» мобильные телефоны и малогабаритные вычислительные устройства, предоставляют довольно хорошую графику, имеющуюся в распоряжении память и уже могут быть выполнены с возможностью подключения некоторым образом к главной компьютерной системе. Другие устройства являются более ограниченными, однако и они, например, могут тем не менее обеспечивать одиночную строку текста, световую сигнализацию и/или звук. В то же время, есть много типов программно реализованных программ, которые работают в главной компьютерной системе и должны приносить пользу, будучи способными выводить информацию на вспомогательный дисплей.
Производителям устройств аппаратных средств, которые могут быть использованы в качестве вспомогательных дисплеев, требуется способ для сопряжения с главной компьютерной системой образом, который требует незначительных, если вообще каких бы то ни было, изменений современных аппаратных устройств. В то же время, такое решение могло бы предоставить возможность прикладным программам быть написанными для использования вспомогательных дисплеев независимо от типа фактически используемого вспомогательного устройства дисплея.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Кратко, настоящее изобретение предусматривает систему и способ, посредством которых прикладные программы, работающие в главной компьютерной системе, поддерживают связь со вспомогательным устройством отображения (дисплеем) (таким как сотовый телефон, малогабаритный персональный компьютер, часы, телевизор, конструкция цифрового изображения и так далее), чтобы предоставлять на устройстве видимую информацию, возможности удаленного управления и уведомления. С этой целью, прикладные программы и им подобное, к примеру, написанные независимыми поставщиками программного обеспечения, осуществляют связь с платформой вспомогательного дисплея через набор интерфейсов прикладного программирования (API), который, в свою очередь, конвертирует информацию по мере необходимости в формат, понимаемый драйвером устройства вспомогательного вычислительного устройства. Драйвер устройства фильтрует информацию желательным образом и форматирует ее для своего конкретного аппаратного устройства, которое может быть присоединено к системе через любое проводное или беспроводное соединение. Драйвер устройства пересылает данные соответствующему аппаратному интерфейсу для передачи вспомогательному устройству. Также предусмотрен обратный канал связи из вспомогательного устройства в главную компьютерную систему.
Посредством абстрагирования от типа вспомогательного устройства и/или от того, каким образом оно подключено, требуются только предопределенный протокол и формат данных, чтобы программа могла осуществлять связь с большим многообразием устройств, которые, вероятно, обладают разными возможностями. Чтобы использовать вспомогательный дисплей, независимый поставщик программного обеспечения просто осуществляет вызов API для платформы вспомогательного дисплея, предоставляя параметр (или параметры), соответствующий данным в согласованном для API формате. После этого данные конвертируются в формат, понятный драйверу устройства, который взаимодействует с платформой вспомогательного дисплея, посредством чего драйвер устройства может корректировать информацию по мере необходимости перед ее пересылкой аппаратным интерфейсам для связи со своим соответствующим вспомогательным устройством.
В одном из альтернативных вариантов поставщик аппаратных средств может избрать реализацию Microsoft®-ориентированного микропрограммного обеспечения, (например, содержащего основанный на TinyCLR (общеязыковой среде исполнения TinyCLR) стек микропрограммного обеспечения) и тем самым гарантировать, что пользователь будет получать впечатление завершенного вспомогательного устройства. Например, при конфигурировании основанным на TinyCLR стеком микропрограммного обеспечения требуется незначительная, если вообще какая бы то ни была, фильтрация, так как известно, что любые программные данные, предоставленные через API, могут обрабатываться вспомогательным устройством. Данные передаются посредством согласованного формата/протокола, и, таким образом, драйверу устройства и/или уровню API требуется всего лишь преобразовать предоставленные прикладной программой данные в соответствующий формат и переслать их, согласно протоколу, на аппаратный уровень транспортировки данных. Поскольку известно, что тип вспомогательного устройства имеет соответствующий стек микропрограммного обеспечения, то формат может быть частным.
В другом альтернативном варианте возможно сокращенное (но все еще полезное) восприятие доступно для тех устройств, которые имеют более простые потребности и возможности относительно обработки программных данных, предоставляемых через тот же самый API. С этой целью драйверы устройств, которые работают в главной компьютерной системе, реализуют определенные аппаратные интерфейсы, чтобы прозрачным образом расширять платформу вспомогательного дисплея до любого типа вспомогательного устройства. Компоненты поверх драйвера устройства могут фильтровать и/или конвертировать поставляемые независимым поставщиком программного обеспечения (ISV) данные, так что данные предоставляются драйверу устройства в предопределенном формате, который драйвер устройства понимает. Драйвер устройства также может фильтровать данные, как назначено, для своего соответствующего вспомогательного устройства, например удалять графику из данных для своего соответствующего вспомогательного устройства, когда такое устройство допускает отображение только текста. Аппаратные устройства, допускающие запуск кода, могут оказаться перед альтернативой разрешить работать на устройстве некоторым или практически всем функциональным возможностям драйвера устройства взамен тех, которые в драйвере устройства на главном компьютере.
Заметим, что значительная часть из интерфейсов/проводных протоколов, используемых драйверами устройств, чтобы предоставлять данные аппаратному интерфейсу передачи, могут быть определены одними и теми же, независимо от используемого механизма подключения. Как результат, драйверы устройств могут совместно использовать некоторый объем кода, даже несмотря на то, что реальный механизм соединения может быть разным. При использовании этого механизма производится впечатление, что устройства работают единообразно, независимо от того, каким образом они присоединены.
В дополнение к работе со вспомогательными устройствами отображения, такими как мобильные телефоны и второстепенные компьютеры, настоящее изобретение может быть использовано для расширения возможности главной компьютерной системы осуществлять связь с ранее специализированными устройствами, такими как телевизоры, радиоприемники, другие устройства воспроизведения мультимедийных данных, основанные на цифровых изображениях конструкции, часы, в том числе наручные часы и будильники, и так далее. С некоторыми программными и небольшими, или отсутствующими, аппаратными дополнениями, такие существующие устройства легко могут расширять свою полезность посредством предоставления им возможности объединяться с главной компьютерной системой. Платформа является наращиваемой в плане аппаратных средств и программного обеспечения, чтобы делать возможными такие сценарии. В то же время задача осуществления связи со вспомогательным устройством, исходя из ракурса независимых поставщиков программного обеспечения, весьма упрощается, так как коду прикладной программы требуется быть написанным всего лишь однажды, чтобы позволить ему работать на большом многообразии устройств, без дополнительных трудозатрат, требуемых, чтобы адаптировать программу для разных вспомогательных устройств.
Другие преимущества станут очевидными из последующего подробного описания при рассмотрении в сочетании с чертежами.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
Фиг.1 - структурная схема, представляющая вычислительное устройство общего назначения в виде традиционной персональной компьютерной системы, в которую может быть включено настоящее изобретение;
фиг.2А-2Е - примерные иллюстрации, в целом представляющие местоположения для размещения вспомогательного дисплея на различных устройствах;
фиг.3 - структурная схема, в целом представляющая примерную уровневую архитектуру, посредством которой прикладные программы могут обмениваться данными с микропрограммным обеспечением произвольного вспомогательного устройства отображения в соответствии с аспектом настоящего изобретения;
фиг.4 - примерное представление того, как в одной из реализаций информированная о вспомогательных устройствах прикладная программа взаимодействует с платформой вспомогательного дисплея, чтобы обмениваться данными с многочисленными вспомогательными устройствами отображения, в соответствии с аспектом настоящего изобретения; и
фиг.5 - примерное представление того, как в одной из реализаций информированная о вспомогательных устройствах прикладная программа взаимодействует с платформой вспомогательного дисплея, чтобы обмениваться данными с базовым вспомогательным устройством отображения, в соответствии с аспектом настоящего изобретения; и
фиг.6 - примерное представление того, как в одной из реализаций информированная о вспомогательных устройствах прикладная программа взаимодействует с платформой вспомогательного дисплея, чтобы обмениваться данными с усовершенствованным вспомогательным устройством отображения, в соответствии с аспектом настоящегоизобретения.
ПОДРОБНОЕ ОПИСАНИЕ
ПРИМЕРНАЯ РАБОЧАЯ СРЕДА
Фиг.1 - структурная схема, изображающая вычислительное устройство 120 в виде персональной компьютерной системы, в которую может быть включено настоящее изобретение. Специалист в данной области техники будет принимать во внимание, что персональная компьютерная система 120, изображенная на фиг.1, имеет намерением быть только иллюстративной и что настоящее изобретение может быть осуществлено на практике с другими конфигурациями компьютерных систем, в том числе «карманными» устройствами, многопроцессорными системами, основанной на микропроцессорах или программируемой бытовой электронной аппаратурой, сетевыми персональными компьютерами, миникомпьютерами, большими электронными вычислительными машинами, автономными серверами и тому подобным. Изобретение, к тому же, может быть осуществлено на практике в распределенной вычислительной среде, где задачи выполняются удаленными устройствами обработки данных, которые связаны через сеть передачи данных. В распределенной вычислительной среде программные модули могут быть размещены как в локальных, так и в удаленных запоминающих устройствах.
Персональная компьютерная система 120 включает в себя модуль 121 обработки данных, системную память 122 и системную шину 123, которая присоединяет различные системные компоненты, в том числе системную память, к модулю 121 обработки данных. Системная шина 123 может относится к любому из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, используя любую из многообразия шинных архитектур. Системная память включает в себя постоянное запоминающее устройство 124 (ПЗУ) и оперативное запоминающее устройство 125 (ОЗУ). Базовая система 126 ввода-вывода (BIOS), содержащая в себе базовые процедуры, которые помогают передавать информацию между элементами в пределах персонального компьютера 120, к примеру, в ходе загрузки, сохранена в ПЗУ 124. Персональный компьютер 120 дополнительно может включать в себя накопитель 127 на жестких дисках для считывания с или записи на жесткий диск, не показан, магнитный дисковод 128 для считывания с или записи на съемный магнитный диск 129 и оптический дисковод 130 для считывания с или записи на съемный оптический диск 131, такой как CD-ROM (ПЗУ на компакт-диске) или другие оптические носители. Накопитель 127 на жестких дисках, магнитный дисковод 128 и оптический дисковод 130 подключены к системной шине 123 посредством интерфейса 132 накопителя на жестких дисках, интерфейса 133 магнитного дисковода и интерфейса 134 оптического дисковода соответственно. Накопители и дисководы и ассоциированные с ними машиночитаемые носители обеспечивают долговременное хранение машиночитаемых команд, структур данных, программных модулей и других данных для персонального компьютера 120. Хотя примерная компьютерная система, описанная в материалах настоящей заявки, использует жесткий диск, сменный магнитный диск 129 и сменный оптический диск 131, специалистами в данной области техники должно быть принято во внимание, что другие типы машиночитаемых носителей, которые могут хранить данные, пригодные для осуществления доступа компьютером, такие как магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ) и тому подобное, также могут быть использованы в примерной компьютерной системе.
Некоторое количество программных модулей может быть сохранено на жестком диске, магнитном диске 129, оптическом диске 131, в ПЗУ 124 или ОЗУ 125, в том числе операционная система 135 (такая как Windows® XP), одна или более прикладных программ 136 (таких как Microsoft® Outlook), другие программные модули 137 и программные данные 138. Пользователь может вводить команды и информацию в персональный компьютер 120 через устройства ввода, такие как клавиатура 140 и координатно-указательное устройство 142. Другие устройства ввода (не показаны) могут включать в себя микрофон, манипулятор типа «джойстик», игровую панель, спутниковую параболическую антенну, сканер или тому подобное. Эти и другие устройства ввода часто подключены к модулю 121 обработки данных через интерфейс 146 последовательного порта, который присоединен к системной шине, но могут быть подключены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 147 или другой вид устройства отображения также подключен к системной шиной 123 через интерфейс, такой как видеоадаптер 148. В дополнение к монитору 147, персональные компьютеры в типичном случае включают в себя другие периферийные устройства вывода (не показаны), такие как динамики и принтеры. Вспомогательный дисплей 200 является дополнительным устройством вывода и, например, может быть подключен к системной шине 123 через интерфейс 155 вспомогательного дисплея. Вспомогательный дисплей 101 также может подключаться к вычислительному устройству 120 через последовательный интерфейс или посредством других интерфейсов, таких как параллельный порт, игровой порт, инфракрасное или беспроводное соединение, универсальную последовательную шину (USB) или другое соединение периферийных устройств. Устройство 201 ввода на фиг.1 может предусматривать один или более исполнительных механизмов для взаимодействия с и/или управления вспомогательным дисплеем 200 и, например, может быть частью вспомогательного устройства отображения, но в качестве альтернативы может быть независимым от него и быть подключенным к системной шине 123 через интерфейс 156 устройства ввода, который может быть последовательным интерфейсом, посредством других интерфейсов, таких как параллельный порт, игровой порт, инфракрасное или беспроводное соединение, универсальная последовательная шина (USB) или другое соединение периферийного устройства.
Персональный компьютер 120 может работать в сетевой среде с использованием логических соединений с одним или более удаленными компьютерами, такими как удаленный компьютер 149. Удаленный компьютер 149 может быть еще одним персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим совмещенным узлом сети, и в типичном случае включает в себя многие или все из элементов, описанных выше относительно персонального компьютера 120, хотя только запоминающее устройство 150 проиллюстрировано на фиг.1. Логические соединения, изображенные на фиг.1, включают в себя локальную сеть (LAN) 151 и глобальную сеть (WAN) 152. Такие сетевые среды являются обычными в офисах, корпоративных сетях, сетях Интранет (локальных сетях, основанных на технологиях Интернет) и Интернете.
При использовании в сетевой среде LAN персональный компьютер 120 подключен к локальной сети 151 через сетевой интерфейс или адаптер 153. Когда используется в сетевой среде WAN, персональный компьютер 120 в типичном случае включает в себя модем 154 или другое средство для установления связи через глобальную сеть 152, такую как Интернет. Модем 154, который может быть внутренним или внешним, подключен к системной шине 123 посредством интерфейса 146 последовательного порта. В сетевом окружении программные модули, показанные относительно персональной вычислительной машины 120, или их части могут быть сохранены в удаленном запоминающем устройстве. Будет принято во внимание, что показанные сетевые соединения являются примерными, и может быть использовано другое средство установления линии связи между компьютерами.
Должно быть отмечено, что от компьютерной системы не требуется быть полностью действующей для того, чтобы вспомогательное устройство работало в соответствии с настоящим изобретением. В самом деле, вспомогательное устройство может по-прежнему работать, когда питание компьютера выключено, по меньшей мере, до степени, установленной по умолчанию, или до степени, сконфигурированной пользователем, к примеру, когда компьютерная система находится в состоянии режима ожидания или режиме пониженного энергопотребления и/или когда пользователь еще не осуществил логический вход или, в ином случае, не допущен в систему с помощью механизмов безопасности.
Вспомогательное устройство может дополнять главный дисплей и также может служить в качестве псевдодисплея, чтобы предоставлять пользователю некоторую информацию, когда главный дисплей выключен или находится в нерабочем состоянии по иным причинам (например, отсоединен). Например, могла бы быть полезной информация, такая как каким образом следует подавать питание на главный дисплей, какими должны быть номер комнаты и/или распоряжения для встречи, на вспомогательном устройстве отображения, связанном с мобильным компьютером, которое пользователь может просматривать, когда главный дисплей выключен и/или не является беспрепятственно видимым (например, крышка переносного компьютера закрыта). Вспомогательное устройство может проигрывать звук и/или видео, показывать изображения, показывать календарную информацию, показывать электронные письма и так далее.
Чтобы активировать связь и управлять связью в этих режимах пониженного питания, может существовать микропрограммное обеспечение, сохраненное в энергонезависимой памяти, которое, когда загружено и исполняется второстепенным процессором, активирует вспомогательный дисплей наряду с другими вспомогательными компонентами, которые должны быть использованы до тех пор, пока какая-либо энергия имеется в распоряжении. Заметим, что в качестве используемых в материалах настоящей заявки термины «микропрограммное обеспечение» и «аппаратные средства устройства», по существу, являются эквивалентными и, в целом, могут быть рассмотрены в качестве представляющих вспомогательную память, код в ней и/или второстепенный процессор, на котором он исполняется.
Фиг.2А-2Е иллюстрируют примерные местоположения на вычислительных устройствах, или ассоциируемые с вычислительными устройствами, для размещения экранов 200а-200е вспомогательного дисплея соответственно. Как представлено на фиг.2A и 2B, экран 200 a вспомогательного дисплея может быть размещен на передней, задней или на другой поверхности автономного (с наземной линией связи или мобильного) телефона 202, (которому не нужно быть физически подсоединенным, если соединен иным образом, к примеру, посредством технологии Bluetooth), и/или другого экрана 200b вспомогательного дисплея, размещенного на кромке или крышке мобильного компьютера 204 или планшетного вычислительного устройства (не показано). Другое место для экрана 200с вспомогательного дисплея (фиг.2С) может быть на телефоне, смонтированном на компьютере или периферийном устройстве, прикрепленном к компьютеру, например на мониторе 206 или на клавиатуре (не показано). Фиг.2D и 2E иллюстрируют дополнительные размещения экранов 200d и 200e вспомогательного дисплея на передней панели автономной консоли 208, подключенной к компьютеру, или какого-то другого корпуса 210 (такого как корпус для материнской платы) соответственно. Специалисты в данной области техники будут принимать во внимание, что экран вспомогательного дисплея может быть размещен на любой поверхности любого вычислительного устройства или другого устройства, имеющего возможности отображения, например размещен на наручных часах с беспроводным или другим соединением с компьютером, на устройстве дистанционного управления, на удаленном смонтированном на стене блоке и так далее. Действительно, вспомогательному дисплею не нужно быть физически близким к главной компьютерной системе, так как подключение может быть через LAN, или WAN, или даже по Интернету.
Как должно быть очевидно по фиг.2А-2Е, вспомогательный дисплей может быть выполнен в виде любого количества известных типов дисплеев, таких как один или более светоизлучающих диодов (LED), 2-строчный буквенно-цифровой дисплей, монохромный дисплей или цветной дисплей. Специалисты в данной области техники будут принимать во внимание, что настоящее изобретение также может использовать дисплей других вычислительных или коммуникационных устройств в качестве вспомогательного дисплея 200. Эти другие вычислительные или коммуникационных устройства включают в себя компьютеры общего назначения, сотовые телефоны и карманные устройства, такие как пейджер или персональный цифровой секретарь (PDA). Дополнительно, настоящее изобретение может использовать виртуальный вспомогательный дисплей, реализованный в пределах области на экранном изображении вычислительного устройства 120 (например, экранной заставки или компонента графического интерфейса пользователя) в качестве вспомогательного дисплея 200, в том числе до того, как пользователь осуществил логический вход в систему. Вспомогательный дисплей 200 может включать в себя сочетание любых разновидностей, описанных выше, а также быть физически или логически объединенным с индикаторами, такими как один или более LED-диодов, и/или использованным в соединении с виртуальным вспомогательным дисплеем.
Вспомогательное устройство может предоставлять функциональные возможности даже без экрана или когда питание его экрана выключено. Например, вспомогательное устройство может проигрывать звук, собирать данные (например, для более поздней загрузки в главную компьютерную систему), выполнять расчеты и так далее. К тому же дисплей может содержать один или более LED-диодов или тому подобное, а не полный экран. Таким образом, несмотря на то, что возникают многие полезные результаты и преимущества от обладания экраном вспомогательного дисплея и соответственно вспомогательное устройство может быть указано в материалах настоящей заявки как вспомогательный дисплей, дисплей не является необходимым. Вообще, вспомогательный дисплей, который упоминается в материалах настоящей заявки, может быть составлен, по существу, из чего угодно, что может быть воспринято, включая любые воспринимаемые зрением, слышимые и/или тактильные представления.
ОБМЕН ДАННЫМИ СО ВСПОМОГАТЕЛЬНЫМИ ДИСПЛЕЯМИ
Настоящее изобретение в целом направлено на связь со вспомогательными устройствами, к примеру, чтобы обеспечивать уведомления и иной контент (информационно значимое содержимое) для отображения на дисплее вспомогательного устройства и, возможно, чтобы получать обратную информацию от дисплея, например, основанную на взаимодействии пользователя со вспомогательным устройством. Как будет понятно, есть много типов устройств, которые могут служить в качестве вспомогательного устройства отображения, включая те, которые не обязательно имеют дисплеи, но могут обеспечивать какой-нибудь выходной сигнал, например звуковой или световой. Несмотря на то, что в материалах настоящей заявки используется некоторое количество примеров, включающих в себя дисплеи на крышках переносных компьютеров, мобильные телефоны, малогабаритные персональные компьютеры, основанные на цифровых изображениях изобразительные конструкции, кухонные дисплеи, телевизоры, устройства воспроизведения мультимедийных данных, часы, в том числе будильники, наручные часы и так далее, настоящее изобретение не ограничено какими-либо из этих примеров, а, скорее, допускает использование любого устройства, допускающего вывод воспринимаемой информации, даже при упоминании в качестве вспомогательного дисплея. Например, другие виды устройств включают в себя вспомогательные устройства, встроенные в или использующие главный дисплей устройства бытовой электронной аппаратуры (такой как холодильник, ресивер домашнего кинотеатра, DVD-проигрыватель и т.п.), настенных дисплеев, автомобильных, транспортных или других предназначенных для транспортных средств устройств (например, использующих дисплеи, уже находящиеся в автомобиле/поезде/самолете, в качестве вспомогательного дисплея), клавиатур или других устройств ввода главной компьютерной системы, PDA-секретарей (в том числе PDA, не относящихся к сотовым телефонам) и тому подобного.
Подобным образом, настоящее изобретение не ограничено никаким конкретным механизмом для сопряжения вспомогательного дисплея с другой компьютерной системой и, таким образом, не ограничено проводными или беспроводными примерами, использованными в материалах настоящей заявки. Соединение может быть относительно близким или относительно удаленным, по существу, где угодно, к примеру, через LAN, или WAN, или через виртуальное частное соединение через Интернет.
Обращаясь к фиг.3 чертежей, показана примерная архитектура, которая предоставляет вспомогательные устройства 300 и/или 301 для воздействия клиентам, содержащим прикладные программы 302 и другие программы (например, компоненты операционной системы) посредством набора 304 API вспомогательного дисплея. API 304 предоставляет API-интерфейсы для различных функций, в том числе регистрации клиентского приложения 306 (компонента программы или, возможно, самой программы) системой, отправки контента прикрепленным устройствам, отправки уведомлений прикрепленным устройствам и приема событий от прикрепленных устройств. События могут включать в себя навигационные события, события запроса контента, события изменения контента и так далее.
В соответствии с аспектом настоящего изобретения, использование набора 304 API открывает для воздействия клиентам только вспомогательную систему отображения; прямого доступа к отдельным устройствам нет. Как результат, для независимых поставщиков программного обеспечения, после регистрации программного компонента в качестве клиентского приложения (через набор 304 API) контент может быть отправлен любому вспомогательному устройству с использованием другого вызова для того же самого набора 304 API, независимо от фактического типа и возможностей устройства. Несмотря на то что восприятие пользователей может отличаться, программе не требуется адаптироваться к вспомогательному устройству, которое представлено. Заметим, несмотря на то что прикладная программа может получать информацию о возможностях о вспомогательном устройстве и может избирать действовать по-разному на основании этих возможностей, прикладной программе не требуется поступать таким образом, для того чтобы использовать это устройство. Дело в том, что настоящее изобретение предусматривает архитектуру, которая справляется с дополнительной передачей данных, освобождая прикладную программу от сложных задач, включающих в себя приспосабливание данных к любому конкретному устройству.
Уровень 304 API записан в наборе 310 API портативного устройства, который осуществляет связь с процессом драйвера устройства через инфраструктуру 312 драйверов пользовательского режима. Набор 310 API портативного устройства устанавливает соответствие вспомогательного дисплея категории портативных устройств, и он делает возможным перечисление возможностей устройства. Это, однако, инкапсулировано в пределах драйвера пользовательского режима и не открывается для клиентского приложения 306.
Вообще, клиентское приложение 306 отправляет уведомления непосредственно вспомогательному устройству. Устройство выполнено с возможностью отображения уведомлений, а также генерирования своих собственных уведомлений на основе данных, поставляемых из главной компьютерной системы. Другие (необязательные) компоненты, показанные на фиг.3, включают в себя клиент 316 уведомлений, который может предоставлять уведомления на вспомогательном дисплее. Например, даже когда прикладная программа, такая как программа календаря, не работает, может быть желательным предоставлять запланированные уведомления, соответствующие такой программе; клиент 316 уведомлений делает возможными такие сценарии. Заметим, что, как описано ниже со ссылкой на фиг.4-6, компоненты, находящиеся под прикладным уровнем и поверх драйверов 324 и 325 устройств, в целом, могут быть обозначены как платформа вспомогательного дисплея.
Обращаясь к ракурсу поставщиков аппаратных средств, вообще, каждый поставщик вспомогательного дисплея предоставляет соответствующий драйвер 324 вспомогательного устройства, хотя, если устройство встроено некоторым образом, драйвер устройства может быть поставлен провайдером платформы вспомогательного дисплея. Более конкретно, как описано ниже, определенные виды вспомогательных устройств считываются усовершенствованными дисплеями, поскольку они сконфигурированы с определенным микропрограммным обеспечением, которое, среди прочего, является в целом совместимым с любой информацией, которая может быть принята через API-интерфейсы 304. Для таких устройств драйвер 325 устройства может быть обобщенным (и, таким образом, может быть предоставлен поставщиком платформы вспомогательного дисплея), обычно работающим, чтобы выполнять некоторые простые задачи, к примеру, конвертировать информацию, принятую через API, в частный формат, понимаемый микропрограммным обеспечением вспомогательного устройства. Для других вспомогательных устройств, упоминаемых в материалах настоящей заявки как базовые дисплеи, драйверу требуется быть совместимым с возможностями устройства, и, таким образом, поставщику вспомогательного дисплея требуется предоставлять драйвер, выполненный по специальным требованиям к такому устройству или классу устройств.
В любом случае, инфраструктура драйверов пользовательского режима предоставляет интерфейс драйверов устройств (DDI) для сопряжения драйверов (например, 324 и 325) устройств с платформой вспомогательного дисплея. Драйверы затем пересылают данные, соответствующие принятой через API информации, предопределенному интерфейсу (транспортному элементу) аппаратных средств для передачи данных вспомогательному устройству отображения. Например, на фиг.3 драйвер 324 базового устройства показан как пересылающий данные (посредством заранее определенного протокола) в удаленные стек и драйвер 327 для беспроводной (например, Bluetooth, Wi-Fi, AM/FM (с амплитудной/частотной модуляцией), инфракрасной и так далее) связи с устройством 300, тогда как драйвер 325 усовершенствованного устройства показан как пересылающий данные в основанные на USB аппаратные средства 328, хотя пригодны другие типы транспортных механизмов, в том числе сетевые транспортные механизмы, такие как основанные на TCP/IP (протоколе управления передачей/межсетевом протоколе) транспортные механизмы. Как понятно, эти соединения показаны только в целях примера, так как драйвер любого устройства будет пересылать данные для беспроводной или проводной связи подходящим образом.
Заметим, что, как изображено на фиг.4, многочисленные устройства могут быть присоединены к компьютеру, чтобы вместе служить в качестве вспомогательного дисплея. Пользователь может задавать конфигурацию (например, посредством панели управления или ей подобного из компонента 308 поставщиков системных данных) в отношении того, какие данные какого клиентского приложения отображаются и на каких устройствах. Поставщик 308 системных данных также поставляет системную информацию, такую как данные о времени, данные о уровне радиосигнала, громкость и состояние отключения звука компьютера, и/или данные об уровне заряда аккумулятора, на вспомогательные дисплеи. В одной из реализаций платформа 430 вспомогательного дисплея учитывает поддерживаемую системой матрицу 432 всякий раз, когда клиентское приложение 306 отправляет контент, чтобы определить, какое устройство или устройства должны принимать информацию. Некоторое преобразование контента для разных типов устройств может происходить на этом уровне, а также, возможно, на других уровнях, выше уровня драйвера устройства и в драйвере устройства, как описано ниже. API платформы 430 вспомогательного дисплея также будет отправлять события и нечто подобное из вспомогательных устройств в прикладное клиентское приложение, снова с использованием матрицы, чтобы направлять события обратно клиентскому приложению (или клиентским приложениям) надлежащим образом.
Как описано далее, некоторый контент, который может быть загружен во вспомогательное устройство, содержит уведомления. Когда пользователь сбрасывает уведомление на одном вспомогательном устройстве, пользователь обычно желает, чтобы это уведомление было сброшено на других вспомогательных устройствах (необязательная возможность, которая может быть конфигурируемой пользователем). С этой целью, когда обратная информация, переданная со вспомогательного устройства, указывает, что конкретное уведомление было сброшено, платформа вспомогательного дисплея отправляет команду сбрасывания каждому другому из вспомогательных устройств, на которые было направлено это уведомление.
Обращаясь к фиг.5 и 6, усовершенствованным дисплеем является тот, который исполняет конкретный стек микропрограммного обеспечения, известный платформе вспомогательного дисплея. Например, в одной из представленных реализаций такой стек микропрограммного обеспечения включает в себя TinyCLR-компонент и поддерживает сериализацию TinyCLR-объекта. Базовым дисплеем является любой дисплей, который не исполняет стек, известный платформе вспомогательного дисплея.
Фиг.5 - представление компонентов для использования базового дисплея 500 в качестве вспомогательного дисплея. Вообще, программа 302 выполняет API-вызов к платформе 430 вспомогательного дисплея, как описано выше. Платформа 430 вспомогательного дисплея, которая знает, какому устройству (или устройствам) отправлять вспомогательную информацию, также знает, является ли каждое устройство усовершенствованным дисплеем или базовым дисплеем. В этом примере устройство является базовым дисплеем 500, и вспомогательное устройство, таким образом, передает данные, предоставленные в базовом формате контента в качестве API-параметра, который поддерживает драйвер любого базового устройства.
Один из таких базовых форматов контента является основанным на XML (расширяемом языке разметки), и, таким образом, драйверу 550 базового устройства требуется быть способным синтаксически анализировать XML. Если желательно, библиотека 552, включающая в себя функциональные возможности, которые осуществляют вызов к системному синтаксическому анализатору XML, может быть усилена драйвером устройства. Драйвер 550 устройства фильтрует и/или преобразует информацию по мере необходимости для своего конкретного устройства и пересылает ее на уровень транспортировки данных для связи с базовым вспомогательным устройством отображения.
Как может быть видно, платформа является наращиваемой так, что базовые устройства поддерживаются с небольшими изменениями или без изменений. Вообще, единственно необходимым компонентом является драйвер устройства для такого особого устройства.
В некоторых случаях базовые устройства могут эксплуатироваться без изменений микропрограммного обеспечения/программного обеспечения по отношению к устройству. Например, определенные устройства уже реагируют на команды модема (GSM AT) и могут выводить данные. Таким образом, драйвер 550 устройства (или, возможно, более высокоуровневый компонент) может преобразовывать данные и вставлять соответствующие модемные команды, тем самым вспомогательное устройство будет отображать данные без изменения аппаратных средств или необходимости перепрограммирования. Любой другой формат и/или определенный механизм взаимодействия, который уже поддерживают другие устройства, может быть использован подобным образом.
Однако это не всегда является возможным, и таким образом некоторым вспомогательным устройствам потребуется дополнительное микропрограммное обеспечение, чтобы работать в качестве вспомогательного дисплея. Заметим, что некоторые вспомогательные устройства предоставляют возможность загрузки и исполнения кода на устройстве. В любом случае, для того чтобы функционировать в качестве вспомогательного дисплея, поставщик устройства должен быть способным решать, какими возможностями снабдить базовое устройство и каким образом разделить функциональные возможности между драйвером устройства (также в типичном случае предоставляемым поставщиком устройства) и микропрограммным обеспечением устройства.
Как понятно, таким образом, есть, по меньшей мере, два уровня, на которых данные могут быть конвертированы, отфильтрованы и/или преобразованы, перед тем как быть переданными базовому вспомогательному дисплею 500, а именно в платформе вспомогательного дисплея и в драйвере 550 устройства. Одной из общих задач является сделать программные вызовы API независимыми от какого-либо конкретного типа устройства, таким образом, преобразователю может потребоваться изменяться в зависимости от возможностей устройства, так как в типичном случае подразумевается, что драйверы устройств должны быть относительно небольшими.
В качестве одного из примеров, уведомления, как правило, должны использовать тот же самый API уведомления с точки зрения программы 302, невзирая на возможности устройства. Таким образом, заголовок, текст и необязательная информация, такая как изображения, пиктограммы, кнопочные элементы управления, меню и так далее могут быть заданы в качестве параметров. Устройства, не допускающие графики, будут содержать информацию, очищенную от всего другого, кроме текста, и даже текст может быть модифицирован, чтобы соответствовать конкретному дисплею устройства, например, чередованием строк по времени.
В качестве другого примера, API предоставлен для загрузки контента, к примеру, чтобы заполнять кэш в устройстве. В том случае, когда устройство не имеет кэша и определенной навигационной инфраструктуры, платформа вспомогательного дисплея может предоставлять навигационную инфраструктуру, выполняющую такие задачи, как выборку следующего элемента по запросу, предоставление иного битового массива, который соответствует другой странице после того, как линия связи выбрана, и так далее.
Обращаясь к фиг.6, для усовершенствованного устройства 600, по существу, единственным требованием является установление конвейера данных и передача сериализованных (преобразованных в последовательную форму) объектов, например, посредством преобразователя 640 в последовательную форму. Драйвер пользовательского режима может работать для всех усовершенствованных дисплеев, независимо от типа соединения, однако, вероятно, более простым является использовать один драйвер для каждого устройства и по каждому типу соединения. В любом случае, драйвер 660 является ответственным за трансляцию данных и команд, предоставляемых через API, во что-нибудь, что устройство, основанное на TinyCLR, способно понимать. Вообще, поскольку работа микропрограммного обеспечения хорошо известна поставщику платформы вспомогательного дисплея, объекты, которые передаются, могут быть, по существу, чем угодно, с чем согласованы платформа вспомогательного дисплея, драйвер усовершенствованного устройства и усовершенствованное устройство.
Контент, как правило, будет загружен в кэш усовершенствованного устройства, а затем устройство само будет обрабатывать контент желательным образом. Заметим, что это предусматривает автономное применение, так же как и позволение многочисленным приложениям, работающим в системе, одновременно поставлять контент, с одним приложением, работающим единовременно, чтобы осуществлять доступ к кэшированному контенту на вспомогательном дисплее. Уведомления будут намеренно накладываться на текущее выполняемое приложение. Уведомления могут быть выполнены с возможностью представления в любом подходящем порядке, например, на манер FIFO (первым осуществил логический вход, первым вышел), хотя, как может быть легко принято во внимание, может быть разный приоритет среди типов уведомлений (например, неотложному, новому и так далее может быть предоставлен более высокий приоритет, чем обыкновенному или устаревшему уведомлению).
В одной из реализаций, представленной на фиг.6, чтобы осуществлять навигацию и отображать кэшированный контент, приложения 669 устройства и программная оболочка 670 выполняются поверх инфраструктуры 674 и компонента 676 TinyCLR, которые осуществляют интерпретацию, навигацию и отображаение данных. Вообще, программная оболочка 670 обеспечивает базовую страницу, не клиентскую область (область на экране устройства, которая всегда видима, когда питание дисплея включено, безразлично к тому, какой другой контент отображается на устройстве, в типичном случае используемая для отображения в большинстве случаев нужных вещей, таких как часы, индикатор уровня зарядки аккумулятора, индикатор сети), меню и общее впечатление и ощущение от использования вспомогательного устройства отображения. Предоставленные данные могут быть в виде направленного графа экранов или модифицированы в направленный граф экранов, каждый из которых является визуальным деревом объектов View TinyCLR, укорененных объектом Form TinyCLR. Уровень оболочки принимает события кнопочных элементов с более нижних уровней микропрограммного обеспечения, интерпретирует их и осуществляет навигацию повсюду внутри данных надлежащим образом. Программная оболочка 670 также допускает запросы уведомлений от главной компьютерной системы через платформу вспомогательного дисплея, которая описана выше, и выдает запросы в главную компьютерную систему на предоставление нового контента, когда она узнает от менеджера 672 кэширования, что контент необходим (например, находится в недостатке). Программная оболочка 670 также отображает задержанные уведомления, которые могут случаться, когда главная компьютерная система не присоединена.
Автономный менеджер 672 кэширования содержит средство, написанное поверх TinyCLR 676, которое управляет кэшем элементов данных, сохраненных в устройстве. Этот компонент, к тому же, выполняет некоторое управление памятью, имея дело с тем фактом, что системные прикладные программы могут поставлять больше данных, чем устройство может сохранить. Если микропрограммное обеспечение модифицирует кэш данных, то этот компонент отслеживает эту информацию и сообщает о событиях прикладной программе в системе, чтобы дать ей знать либо немедленно, если главная компьютерная система на связи, либо, если не на связи, когда машина снова окажется на связи. Менеджер кэша может быть предоставлен для воздействия драйверу 660 через интерфейс.
Должно быть отмечено, что вспомогательные устройства могут быть сконфигурированы их производителями так, чтобы они имели расширенные возможности сверх тех, которые описаны выше. Для этой цели один или более аппаратных компонентов могут быть добавлены, наряду с драйвером, в стеке, чтобы предоставлять любые новые компоненты для воздействия вспомогательному устройству и остальному из платформы вспомогательного дисплея. Такие расширения аппаратных средств описаны в находящейся в процессе одновременного рассмотрения заявке на выдачу патента США, озаглавленной «Extensible Architecture for Auxiliary Displays» («Расширяемая архитектура для вспомогательных дисплеев»), поданной одновременно с настоящей заявкой и включенной в материалы настоящей заявки посредством ссылки.
Как может быть видно из вышеизложенного, настоящее изобретение предусматривает платформу вспомогательного дисплея, посредством которой могут быть написаны прикладные программы, чтобы обмениваться информацией со вспомогательными дисплеями, независимо от типа вспомогательного устройства отображения, фактически находящегося в использовании. В то же время, платформа вспомогательного дисплея дает производителям устройств аппаратных средств возможность использования таких устройств в качестве вспомогательных дисплеев с небольшими, если вообще какими бы то ни было, изменениями в отношении аппаратных средств. Настоящее изобретение, таким образом, предоставляет многочисленные полезные результаты и преимущества, необходимые в современной вычислительной технике.
Несмотря на то что изобретение поддается различным модификациям и альтернативным конструкциям, определенного рода проиллюстрированные варианты его осуществления показаны на чертежах и были подробно описаны выше. Должно быть понятно, однако, что нет намерения ограничивать изобретение отдельной раскрытой формой или формами, но наоборот, намерение состоит в том, чтобы охватить все модификации, альтернативные конструкции и эквиваленты, попадающие в пределы сущности и объема изобретения.
Класс G06F3/147 на панели индикации
Класс G06F1/16 конструктивные элементы или устройства
Класс G06F13/00 Соединение запоминающих устройств, устройств ввода-вывода или устройств центрального процессора или передача информации или других сигналов между этими устройствами