WO2009144403A2 - Procede pour piloter depuis un peripherique specifique une application logicielle qui n'a pas ete prevue a cet effet - Google Patents

Procede pour piloter depuis un peripherique specifique une application logicielle qui n'a pas ete prevue a cet effet Download PDF

Info

Publication number
WO2009144403A2
WO2009144403A2 PCT/FR2009/000386 FR2009000386W WO2009144403A2 WO 2009144403 A2 WO2009144403 A2 WO 2009144403A2 FR 2009000386 W FR2009000386 W FR 2009000386W WO 2009144403 A2 WO2009144403 A2 WO 2009144403A2
Authority
WO
WIPO (PCT)
Prior art keywords
instructions
application
alt
specific
interpretable
Prior art date
Application number
PCT/FR2009/000386
Other languages
English (en)
Other versions
WO2009144403A3 (fr
Inventor
Eric Delattre
Original Assignee
Lexip
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lexip filed Critical Lexip
Publication of WO2009144403A2 publication Critical patent/WO2009144403A2/fr
Publication of WO2009144403A3 publication Critical patent/WO2009144403A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G06F3/0383Signal control means within the pointing device

Definitions

  • the invention provides a solution for controlling a software application with a specific pointing device, such as a six-axis mouse, when that software application does not support that specific device.
  • the invention relates to the use of a device such as the six-axis mouse described in patent documents FR2858072 and FR2881238.
  • This mouse comprises a housing movable in translation in a plane along two perpendicular axes, such as standard mice. But this housing is also mobile in rotation about these two axes and around a third axis perpendicular thereto. This case is still provided with a wheel which is its sixth axis of movement.
  • This mouse is intended for the manipulation of three-dimensional digital virtual objects presented by a software application, such as a computer-aided design application.
  • the mouse can for example control the application so as to be coupled to a three-dimensional object selected by the user.
  • the movements that the user imposes on the mouse casing as well as the actuation of the wheel result in corresponding displacements of the object that he manipulates.
  • This mouse can also be used to move in a digital three-dimensional space.
  • the movements of the housing then result in displacements and modifications of the orientation of the point of view from which this three-dimensional space is presented by the application.
  • the presence of a driver or "driver" in the operating system of the computer is necessary to format the raw data delivered by the device when it is moved.
  • HID-CMA Human Interface Device Multi-Axis Control
  • controlling an application with a six-axis mouse requires that the support of this mouse has been provided during the design and writing of this application.
  • the application can also be designed to receive a dedicated additional software component, called "plugin", and ensuring the coupling the specific device driver with this application.
  • the object of the invention is to propose a solution to overcome the above disadvantages.
  • the subject of the invention is a method for controlling, based on specific instructions representative of movements of a specific pointing device such as a mouse with six axes of movement and coming from this point of view.
  • specific device a software application executed by a computer, this application being controllable with so-called interpretable instructions from an input device such as an alphanumeric keyboard, in which the specific instructions are converted in real time into instructions containing instructions the type of data coming from the input device, each instruction terpretable including elementary instructions repeated a number of times proportional to a range of motion of the specific device.
  • the conversion is ensured by applying conversion rules that can be stored in a nonvolatile memory of the computer to be easily modulated or modified.
  • conversion rules corresponding to this application to be able to control it can easily be saved in the computer.
  • the invention also relates to a method as defined above, wherein the real-time conversion of specific instructions into instructions with interpretable instructions is provided in the specific pointing device.
  • protection and security software such as an antivirus, can not detect software emulation of a keyboard or other within the computer, to block it, since the interpretable instructions are directly produced by the pointing device.
  • the invention relates to a method as defined above, wherein the converted specific instructions that are addressed to the application include interpretable instructions of the same type as the instructions. tructions addressed to this application when it is controlled from a pointing device.
  • the converted instructions may thus have the same form as instructions from another pointing device delivering data representative of its displacements.
  • the instructions addressed to the application are then directly representative of displacement amplitudes.
  • the invention also relates to a method as defined above, in which the converted specific instructions which are addressed to the application include interpretable instructions of the same type as the instructions addressed to this application when it is driven from a mouse to two axes of movement.
  • the method is applicable to any application that supports two-axis mice, which is the case for most applications. But moreover, the emulation thus offers a very good fluidity on at least two axes of movements corresponding to this mouse.
  • the subject of the invention is also a method as defined above, in which the converted specific instructions which are addressed to the application comprise interpretable instructions of the same type as the interpretable instructions addressed to this application when it is driven from an alphanumeric keyboard.
  • the converted instructions can thus be in the form of instructions derived from keyboard shortcuts that are provided in the vast majority of applications, which further extends its scope.
  • the converted instructions comprise instructions of the same type as those from a pointing device, supplemented by instructions of the same type as those issued from an input device such as a keyboard.
  • the method is thus particularly suitable for any application that supports a keyboard and a mouse with two axes. But it provides a high level of fluidity by exploiting the largest possible amount of instructions of the type from those of a non-specific pointer device.
  • the invention also relates to a method as defined above, wherein the conversion is provided with a set of conversion rules stored in a database stored in the computer or in the pointing device and having several games. conversion rules each associated with an application to be piloted.
  • the invention also relates to a method as defined above, in which the conversion is performed by applying a set of conversion rules selected to correspond to the active software application, and in which the switching of a Active application to another active application causes the selection of another set of conversion rules associated with that other active application to perform the conversion.
  • the user can switch from an active software application to the graphical interface of the operating system and vice versa, in a completely transparent manner.
  • each set of conversion rules comprises a conversion rule associated with each axis of displacement of the specific pointing device.
  • each conversion rule comprises an interpretable elementary instruction associated with at least one axis of movement of the specific pointing device.
  • the subject of the invention is also a method as defined above, in which at least one conversion rule is stored in the computer or in the pointing device after having been established by executing a learning method comprising a first step of selecting a specific pointing device displacement axis, a second step of controlling the application from a device that it supports to perform a function to associate with that motion axis and during which the interpretable instructions from the supported device are captured, and a third step of determining the conversion rule by differentiating the captured instructions.
  • FIG. 1 is a representative block diagram of the control method according to the invention
  • FIG. 2 is a block diagram showing the steps of a translation operation of the method according to the invention.
  • the idea underlying the invention is to emulate the piloting of a given application by a specific pointing device, which is here a six-axis mouse, by using the control modes of this application via the keyboard shortcuts of this application and possibly via a standard mouse.
  • the movements of the six-axis mouse are converted in real time into instructions interpretable by the active application, that is to say instructions of the same type and format as those addressed to this application when it is controlled via a standard mouse and / or via keyboard shortcuts.
  • the conversion is ensured by applying conversion rules of a conversion rule set associated with the active application. These rules are stored in a database stored in a non-volatile memory of the computer running the application and which is connected to the mouse for controlling this application.
  • the conversion rule set is updated to use the conversion rule set specific to that other active application, which is also stored in the database.
  • the database can be provided pre-programmed, but it can also be filled in by the user, by executing a guided learning routine to establish and store in this database the conversion rules to be associated with a given application.
  • a guided learning routine to establish and store in this database the conversion rules to be associated with a given application.
  • the keyboard shortcut Pressing the "Ctrl” and "High Arrow” keys controls the rotation function around a horizontal axis of a three-dimensional object presented by this application.
  • the raw data delivered by the device as it rotates about its horizontal axis are converted into instructions of the same type as those addressed to the application when the "Ctrl" and "High Arrow” keys are pressed, which are interpretable instructions by this application.
  • the emulation takes this change into account to use the conversion rules specific to the new active application. So, when the active application requires pressing the "Alt” and “High Arrow” keys, instead of “Ctrl” and “High Arrow” to rotate the object around a horizontal axis, the device data specific pivoting around its horizontal axis are converted to instructions of the same type as those addressed to the application when the keys "Alt” and “Arrow High” are pressed, the latter constituting interpretable instructions by the new active application.
  • the determination of the active application necessary for the activation of the appropriate conversion rules set is for example carried out from a register kept up to date by the operating system, and in which is stored a designation of the application currently active.
  • This active application can be a three-dimensional application, a video game or other. But this active application can also be the graphical interface of the operating system, which then allows the user to switch from a three-dimensional application. to the operating system, to control the opening of a file by this application, without having to manipulate two separate pointing devices.
  • the method is here presented in the context of the use of a specific pointing device which is a mouse having a base and a housing movable relative to this base along six axes.
  • This method thus also applies to a mouse with six axes without a fixed base and delivering data representative of displacements along these six axes. It also applies to the case of a remote control or pointer connected wirelessly to the computer, such a pointer being movable in the three-dimensional space and delivering data representative of its movements and rotations in this space, such as for example the one that is marketed under the wiimote brand.
  • the specific pointing device diagrammatically represented by the block 1 in FIG. 1 is a three-dimensional mouse, comprising for example a fixed base and a housing that is movable with respect to this base along six axes, and which delivers data representative of its displacements according to these six axes.
  • the data delivered in block 2 are decomposed by a sequencer 3 into elementary displacements, which are then transmitted to block 4 to be converted into interpretable instructions by the active application 6.
  • interpretable instructions are then addressed, via the operating system 7, to the active application 6, which then executes the function or functions associated with the movement.
  • the sequencer 3 decomposes each data set addressed to it by the block 2 in a series of elementary displacements, which follow each other in time, and whose sum corresponds to the totality of the displacement described by this set. of data.
  • Each elementary displacement takes place either along an axis or along two coupled axes, and has a greater or lesser amplitude.
  • the coupled axes are typically the translations along the x and y axes which are the mobility levels of a standard mouse, the majority of the applications being able to interpret so-called coupled instructions for these axes, ie representative of translations. having components on each of these two axes.
  • the sequencer 3 reads from the database 8 which returns to it the coupled axes for the considered application, via the block 10. Then it establishes a sequence comprising simple elementary displacements, that is to say occurring on only one axis, and when the application allows it, elementary displacements occurring jointly on two axes.
  • the data set addressed by block 2 is represented by the vector [+2; 5; 0; 3; +2; 0] whose components correspond successively to the amplitudes of the translations along the x, y and z axes, and rotations around these axes.
  • each elementary displacement is defined by the data of a motion axis noted Am and an amplitude noted Vm.
  • the magnitude Am may be Tx, Ty, Tz, Rx, Ry or Rz, and the magnitude Vm being an amplitude, it is a numerical value.
  • Vm being an amplitude
  • a reading in the database 8 provides the conversion rule to be applied for the convert to an interpretable statement by the active application.
  • Such a conversion rule defines the syntax to be used to form the interpretable instruction to associate with the elementary movement being processed, for the currently active application.
  • This syntax typically includes an introductory instruction, an elementary instruction, and a closing statement terminating it. It comprises, if necessary, two elementary instructions when it concerns an elementary displacement on two coupled axes.
  • the converter first compares the motion axis of the elementary displacement received, with the motion axis of the preceding elementary displacement, to block 9 to determine if there has been a change of axis.
  • block 11 If the preceding elementary displacement was zero, block 11 generates the introductory instruction associated with the elementary displacement to be converted. For example, if the conversion rule indicates that the introductory instruction to be associated with the processed motion Txy (+2; +5), is an instruction representative of the click depressing of a standard mouse, noted as Clic (+), then block 11 generates the instruction Clic (+).
  • the block 11 If the preceding elementary displacement occurred on another axis, the block 11 generates the instruction of conclusion of the preceding elementary displacement, then the introductory instruction of the elementary displacement being processed.
  • the previous move was a horizontal rotation denoted Rx (+3) converted to an interpretable statement of type Ctrl (+), FH (+), FH (+), FH (+) corresponding to a keyboard shortcut consisting of enfon - Then press the Ctrl key and then press the FH High Arrow key three times.
  • the one or more interpretable elementary instructions are generated in block 12.
  • the conversion rule mentions, for example, two elementary instructions, denoted Sx () and SyO, respectively corresponding to a translation according to the x-axis and the y-axis.
  • the block 12 successively generates the elementary instructions Sx (+2) and Sy (+5) representative of translations on the x and y axes of a standard mouse.
  • the instructions set out in block 11 and in block 12 are transmitted, as and when to buffer block 13, in which they are concatenated with the preceding instructions. At regular intervals, for example every thirty milliseconds, the data of the buffer block 13 are sent to the active application which then operates the corresponding function. Thus, the sequence of elementary displacements
  • Txy (+2; +5), Rx (+3), Ry (+2) is converted in block 4 into a sequence of instructions interpretable by the active application, and corresponding to the succession of the following three sequences: +) / Sx (+2) / Sy (+5) / Click (-)
  • the first sequence corresponds to the interpretable instructions representative of a displacement of a standard mouse in the plane.
  • the second sequence is the keyboard shortcut of pressing Alt and High Arrow three times in a row.
  • the third sequence corresponds to the instructions addressed to the application on pressing the Alt key and the right arrow key, marked FD, twice in succession.
  • the emulation takes into account and converts the amplitudes of the displacements of the specific device.
  • the amplitudes of these displacements are converted into interpretable instructions which themselves incorporate one or more amplitude variables, which furthermore makes it possible to reduce the quantity of data. converted to address the application.
  • the amplitudes of these displacements are converted into interpretable instructions in which the elementary instructions are repeated a number of times proportional to the amplitude of the displacement.
  • the second and third sequences correspond to unmatched axes of rotation for the application in question.
  • the application can be provided to allow to couple the rotations around the horizontal and vertical axis, for example in the case where they are caused by the shortcuts of pressing the Ctrl and FH keys, and the Ctrl and FD keys, respectively .
  • the sequence of elementary displacements Txy (+2; +5), Rx (+3), Ry (+2) is converted in block 4 into a sequence of interpretable instructions corresponding to the succession of the following two sequences: Click (+) / Sx (+2) / Sy (+5) / Click (-) Ctrl (+) / FH (+) / FH (+) / FH (+) / FD (+) / FD (+) / Ctrl (-)
  • this fluidity can be further increased by combining the elementary instructions present in the sequence, as in the example below, so as to obtain a more fluid rotational movement.
  • the emulation comprises a so-called dominant axis mode schematized by the block 16 in FIG. 1.
  • the decomposition of the block 3 filters the displacement data addressed to it by the block 2 in order to suppress it. the motion components having a small amplitude, before converting the whole into a series of elementary displacements.
  • a data set represented by the displacement vector [+5; +1; 0; 0; 4; +1] is then filtered to become [+5; 0; 0; 0; 4; 0] before being cut into a series of elementary displacements, namely Tx ⁇ +5), Ry (+4), at block 3.
  • the emulation program is for example provided on a computer recording medium such as a compact disc comprising the emulator including the base of data 8, all being advantageously provided with the specific device.
  • This database 8 can be provided either pre-taught or be provided by the user using a learning software also provided with the device.
  • this database When this database is filled in, it includes a set of conversion rules for each application to be driven.
  • Each set of conversion rules indicates the axes that are coupled, and gives for each elementary displacement the conversion rule to apply.
  • Each conversion rule defines the format to be respected in order to establish an interpretable instruction associated with the displacement axis considered.
  • a conversion rule is defined by the data of an introductory instruction, an elementary instruction, and a conclusion statement.
  • the learning software implements a method in which the user is guided to establish and store in the database 8 a set of conversion rules associated with an application that the user wishes to drive with the six-axis mouse.
  • the user launches the learning software, which asks him to select the application he wants to control.
  • the learning is guided and asks him to select a category of movement of the specific device, ie an axis of movement, or the combination of two axes of displacement.
  • the learning software then requests the user to control the application via a device other than the six-axis mouse, so as to execute the function of this application that he wants to control via the category of movement of the mouse that he previously selected.
  • the user will for example use the keyboard shortcut Ctrl FH of the application to rotate the object around a horizontal axis.
  • the user can choose a displacement of the object, but this function can be quite different, such as for example the adjustment of the size of the three-dimensional object presented by the application.
  • the training software captures the interpretable instruction sequence that is addressed to the application to perform the requested function.
  • the training software analyzes the sequence of interpretable instructions to extract the syntax including the introductory instruction, the elementary instruction and the conclusion instruction.
  • the learning is presented as part of an application that can be controlled by keyboard shortcuts, but as indicated above, learning can involve the keyboard and mouse together.
  • learning can be done with any device supported by the application.
  • this learning can be done with a specific pointing device other than the one that the user wishes to use. For example, starting from a controllable application from a specific pointing device having six potentiometers each associated with an axis, the user can use the latter to perform the training so as to control this application with a six-axis mouse.
  • the database containing the conversion rules is stored in the computer. But this database can also be directly stored in the specific pointing device.
  • the device may also include means for converting its movement instructions.
  • the implementation of the invention can then be ensured without having to install software or other on the computer used, all the data of the database, and the conversion of these data being directly provided at the device.
  • the fact of generating the instructions comprising elementary interpretable instructions of the keyboard shortcut type or the like, directly from the pointing device, namely the mouse, makes it possible to pass several dams or filters, in order to make the solution according to the invention compatible with a more large number of computer applications.
  • some security or protection algorithms manage to detect a virtual keyboard to block it, when this virtual keyboard results from a software emulation run in the computer.
  • the emulation When the emulation is hardware, that is to say when it is provided from the device that is the mouse, which directly addresses the computer commands such as shortcut keys or other, this emulation does not run on the computer. risk of being blocked since it can not be detected.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

L'invention concerne un procédé pour piloter depuis un périphérique spécifique (1) une application logicielle (6) qui n'a pas été prévue ô cet effet Le pilotage, ô partir d'instructions spécifiques représentatives de déplacements d'un périphérique spécifique de pointage tel qu'une souris ô six axes de déplacements (1) et issues de ce périphérique spécifique, d'une application logicielle (6) pilotable avec des instructions dites interprétables qui sont issues d'un autre périphérique de type standard, tel qu'un clavier alphanumérique et/ou une souris ô deux axes de déplacements, est assuré en convertissant en temps réel les instructions spécifiques en instructions interprétables. L'invention s'applique au domaine de l'interface homme-machine en matière informatique.

Description

PROCEDE POUR PILOTER DEPUIS UN PERIPHERIQUE SPECIFIQUE UNE APPLICATION LOGICIELLE QUI N'A PAS ETE PREVUE A CET EFFET
L'invention apporte une solution pour piloter une application logicielle avec un périphérique de pointage spécifique, tel qu'une souris à six axes, lorsque cette application logicielle ne prend pas en charge ce périphérique spécifique. ARRIERE PLAN DE L'INVENTION
L'invention concerne l'utilisation d'un périphérique tel que la souris à six axes décrite dans les documents de brevet FR2858072 et FR2881238. Cette souris comporte un boîtier mobile en translation dans un plan selon deux axes perpendiculaires, comme les souris standard. Mais ce boîtier est aussi mobile en rotation autour de ces deux axes et autour d'un troisième axe perpendiculaire à ceux-ci. Ce boîtier est encore pourvu d'une molette qui constitue son sixième axe de déplacement. Cette souris est destinée à la manipulation d'objets virtuels numériques tridimensionnels, présentés par une application logicielle, telle qu'une application de conception assistée par ordinateur.
La souris peut par exemple piloter l'application de manière à être couplée à un objet tridimensionnel sélectionné par l'utilisateur. Dans ce cas, les mouvements que l'utilisateur impose au boîtier de la souris ainsi que 1 ' actionnement de la molette, se traduisent par des déplacements correspondants de l'objet qu'il manipule. Cette souris peut aussi être utilisée pour se déplacer dans un espace tridimensionnel numérique. Les mouvements du boîtier se traduisent alors par des déplacements et modifications de 1 ' orientation du point de vue depuis lequel cet espace tridimensionnel est présenté par l'application. Avec tout périphérique de pointage, la présence d'un pilote ou "driver" dans le système d'exploitation de 1 ' ordinateur est nécessaire pour mettre en forme les données brutes délivrées par le périphérique lorsqu'il est déplacé .
S'il s'agit d'une souris standard, à deux axes de translation, la grande majorité des applications logicielles existantes sont capables d'interpréter directement les données mises en forme par le pilote de cette souris.
Dans le cas d'un périphérique spécifique tel qu'une souris à six axes de mobilité, la présence du pilote est en soi insuffisante pour piloter une application donnée en exploitant chaque axe de mobilité. En effet, les périphériques de pointage comportant plus de deux ou trois axes de déplacement, tels que la souris à six axes, sont relativement peu courants.
Il existe certes un standard de mise en forme des données délivrées par les pilotes de tels périphériques, connu sous l'acronyme HID-CMA, correspondant à "Human Interface Device Contrôler Multi Axes" .
Mais il s'avère que ce standard n'est pas impie- mente, ni dans les systèmes d'exploitation actuels, ni dans les applications actuelles. Ainsi, en pratique il n'existe pas de standardisation utilisable quant à la forme des données délivrées par le pilote permettant d'en faire des instructions directement interprétables par toute application.
C'est pourquoi piloter une application avec une souris à six axes nécessite que la prise en charge de cette souris ait été prévue lors de la conception et de l'écriture de cette application. L'application peut aussi être conçue pour recevoir un composant logiciel supplémentaire dédié, appelé "plugin", et assurant le couplage du pilote du périphérique spécifique avec cette application.
Dans ce cas, l'utilisateur doit se procurer le composant logiciel approprié, qui doit avoir été dévelop- pé spécialement pour le périphérique spécifique et pour l'application considérés. Mais lorsqu'un tel composant n'existe pas, l'utilisateur ne peut simplement pas utiliser son périphérique spécifique avec son application.
En d'autres termes, pour qu'un tel périphérique spécifique tel qu'une souris à six axes puisse être commercialisé de façon viable, il est nécessaire de le fournir avec autant de plugins qu'il existe d'applications susceptibles d'être pilotées.
Compte tenu de la grande quantité d'applications tridimensionnelles et de leurs mises à jour très fréquentes, il est extrêmement coûteux de développer et de tenir à jour une quantité de plugins suffisante pour offrir une compatibilité réelle avec la majorité des applications existantes . OBJET DE L'INVENTION
Le but de l'invention est de proposer une solution pour remédier aux inconvénients ci-dessus.
RESUME DE L'INVENTION A cet effet, l'invention a pour objet un procédé pour piloter, à partir d'instructions spécifiques représentatives de mouvements d'un périphérique spécifique de pointage tel qu'une souris à six axes de déplacements et issues de ce périphérique spécifique, une application logicielle exécutée par un ordinateur, cette application étant pilotable avec des instructions dites interprétables issues d'un périphérique de saisie tel qu'un clavier alphanumérique, dans lequel les instructions spécifiques sont converties en temps réel en des instructions comportant des instructions interprétables du type de celles issues du périphérique de saisie, chaque instruction in- terprétable incluant des instructions élémentaires répétées un nombre de fois proportionnel à une amplitude de déplacement du périphérique spécifique.
Avec cette solution, les instructions spécifiques du périphérique de pointage spécifique qui ne sont en soi pas prises en charge par cette application, peuvent être converties en des instructions du même type ou du même format que celles qui lui sont adressées lorsqu'elle est pilotée au moyen de raccourcis clavier adressés depuis un périphérique de saisie qu'elle prend en charge. Le périphérique de pointage spécifique peut ainsi piloter une application qui ne le prend a priori pas en charge.
La conversion est assurée en appliquant des règles de conversion qui peuvent être enregistrées dans une mémoire non volatile de l'ordinateur pour être facilement modulées ou modifiées. Lorsqu'on choisit de piloter une application donnée, des règles de conversion correspondant à cette application pour pouvoir la piloter peuvent facilement être enregistrées dans l'ordinateur. L'invention concerne également un procédé tel que défini ci-dessus, dans lequel la conversion en temps réel des instructions spécifiques en des instructions comportant des instructions interprétables est assurée dans le périphérique de pointage spécifique. Dans ce cas, un logiciel de protection et de sécurité, tel qu'un antivirus, ne peut pas détecter d'émulation logicielle d'un clavier ou autre au sein de l'ordinateur, pour la bloquer, puisque les instructions interprétables sont directement produites par le périphéri- que de pointage.
L'invention concerne un procédé tel que défini ci-dessus, dans lequel les instructions spécifiques converties qui sont adressées à l'application comportent des instructions interprétables du même type que les ins- tructions adressées à cette application lorsqu'elle est pilotée depuis un périphérique de pointage.
Les instructions converties peuvent ainsi avoir la même forme que des instructions issues d'un autre pé- riphérique de pointage délivrant des données représentatives de ses déplacements . Les instructions adressées à 1 ' application sont alors directement représentatives d'amplitudes de déplacements.
Ceci réduit la quantité de données à convertir et à transférer afin de diminuer le temps de latence de l'émulation pour en améliorer la fluidité. Ce temps de latence peut encore être réduit en exploitant les axes couplés que 1 ' application est capable de prendre en charge lorsqu'elle prend en charge un périphérique du type périphérique de pointage.
L'invention concerne également un procédé tel que défini ci-dessus, dans lequel les instructions spécifiques converties qui sont adressées à 1 ' application comportent des instructions interprétables du même type que les instructions adressées à cette application lorsqu'elle est pilotée depuis une souris à deux axes de déplacements .
Avec cette solution, le procédé est applicable à toute application prenant en charge les souris à deux axes, ce qui est le cas la majorité des applications. Mais de plus, l'émulation offre ainsi une très bonne fluidité sur au moins les deux axes de mouvements correspondant à cette souris.
L'invention a également pour objet un procédé tel que défini ci-dessus, dans lequel les instructions spécifiques converties qui sont adressées à l'application comportent des instructions interprétables du même type que les instructions interprétables adressées à cette application lorsqu'elle est pilotée depuis un clavier alphanu- mérique. Les instructions converties peuvent ainsi avoir la forme des instructions issues de raccourcis clavier qui sont prévus dans la très grande majorité des applications, ce qui étend encore son champ d'application. Avantageusement, les instructions converties comprennent des instructions du même type que celles issues d'un périphérique de pointage, complétées par des instructions du même type que celles issues d'un périphérique de saisie tel qu'un clavier. Le procédé est ainsi notamment adapté à toute application prenant en charge un clavier et une souris à deux axes . Mais il apporte un niveau de fluidité élevé en exploitant la plus grande quantité possible d'instructions du type de celles issues d'un périphérique de poin- tage non spécifique.
L'invention a également pour objet un procédé tel que défini ci-dessus, dans lequel la conversion est assurée avec un jeu de règles de conversion mémorisé dans une base de données enregistrée dans l'ordinateur ou dans le périphérique de pointage et comportant plusieurs jeux de règles de conversion associés chacun à une application à piloter.
L'invention a également pour objet un procédé tel que défini ci-dessus, dans lequel la conversion est assu- rée en appliquant un jeu de règles de conversion sélectionné pour correspondre à l'application logicielle active, et dans lequel le basculement d'une application active vers une autre application active provoque la sélection d'un autre jeu de règles de conversion associé à cette autre application active pour effectuer la conversion.
Les règles de conversion étant sélectionnées en fonction de l'application active, plusieurs applications ne prenant pas en charge le périphérique de pointage spé- cifique peuvent être pilotées par celui-ci, de façon 9 000386
transparente pour l'utilisateur puisque les règles de conversion utilisées sont les règles propres à l'application qui est active.
En particulier, l'utilisateur peut basculer d'une application logicielle active vers l ' interface graphique du système d'exploitation et réciproquement, de manière complètement transparente .
L'invention a également pour objet un procédé tel que défini ci-dessus, dans lequel chaque jeu de règles de conversion comporte une règle de conversion associée à chaque axe de déplacement du périphérique de pointage spécifique.
L'invention a également pour objet un procédé tel que défini ci-dessus, dans lequel chaque règle de conver- sion comporte une instruction élémentaire interprétable associée à au moins un axe de déplacement du périphérique de pointage spécifique.
L'invention a également pour objet un procédé tel que défini ci-dessus, dans lequel au moins une règle de conversion est mémorisée dans l'ordinateur ou dans le périphérique de pointage après avoir été établie en exécutant un procédé d'apprentissage comportant une première étape de sélection d'un axe de déplacement du périphérique de pointage spécifique, une seconde étape de pilotage de l'application depuis un périphérique qu'elle prend en charge pour exécuter une fonction à associer à cet axe de déplacement et durant laquelle les instructions interprétables issues du périphérique pris en charge sont capturées, et une troisième étape de détermination de la règle de conversion par différentiation des instructions capturées .
BREVE DESCRIPTION DES FIGURES
- la figure 1 est un schéma bloc représentatif du procédé de pilotage selon l'invention ; - la figure 2 est un schéma bloc montrant les étapes d'une opération de traduction du procédé selon 1 ' invention.
DESCRIPTION DETAILLEE DE L'INVENTION L'idée à la base de l'invention est d'émuler le pilotage d'une application donnée par un périphérique de pointage spécifique, qui est ici une souris à six axes, en utilisant les modes de pilotage de cette application via les raccourcis clavier de cette application et éven- tuellement via une souris standard.
Les déplacements de la souris à six axes sont convertis en temps réel en des instructions interprétables par l'application active, c'est à dire en des instructions du même type et du même format que celles adressées à cette application lorsqu'elle est pilotée via une souris standard et/ou via ses raccourcis clavier.
La conversion est assurée en appliquant des règles de conversion d'un jeu de règles de conversion associé à l'application active. Ces règles sont mémorisées dans une base de données enregistrée dans une mémoire non volatile de l'ordinateur exploitant l'application et auquel est reliée la souris destinée à piloter cette application.
Lors du basculement d'une application active vers une autre application active, le jeu de règles de conversion est actualisé pour utiliser le jeu de règles de conversion propre à cette autre application active, qui est également mémorisé dans la base de données.
La base de données peut être fournie prérensei- gnée, mais elle peut aussi être renseignée par l'utilisateur, en exécutant une routine d'apprentissage guidée pour établir et mémoriser dans cette base de données, les règles de conversion à associer à une application donnée. Par exemple, il est courant dans les applications logicielles tridimensionnelles que le raccourci clavier consistant à enfoncer les touches "Ctrl" et "Flèche Haute" pilote la fonction de rotation autour d'un axe horizontal d'un objet tridimensionnel présenté par cette application. Dans ce cas, les données brutes délivrées par le périphérique lorsqu'il tourne autour de son axe horizontal sont converties en des instructions du même type que celles adressées à l'application lorsque les touches "Ctrl" et "Flèche Haute" sont enfoncées, qui constituent des instructions interprétables par cette application.
Lorsque l'utilisateur bascule vers une nouvelle application active, l'émulation prend en compte cette modification pour utiliser les règles de conversion propres à la nouvelle application active. Ainsi, lorsque l'application active nécessite d'enfoncer les touches "Alt" et "Flèche Haute", au lieu de "Ctrl" et "Flèche Haute" pour faire pivoter l'objet autour d'un axe horizontal, les données du périphérique spécifique pivotant autour de son axe horizontal sont converties en des instructions du même type que celles adressées à l'application lorsque les touches "Alt" et "Flèche Haute" sont enfoncées, ces dernières constituant des instructions interprétables par la nouvelle application active. La détermination de l'application active nécessaire à 1 ' activation du jeu règles de conversion adéquat est par exemple effectuée à partir d'un registre tenu à jour par le système d'exploitation, et dans lequel est mémorisée une désignation de l'application couramment ac- tive.
Cette application active peut être une application tridimensionnelle, un jeu vidéo ou autre. Mais cette application active peut également être 1 ' interface graphique du système d'exploitation, ce qui permet alors à l'utilisateur de basculer d'une application tridimension- nelle vers le système d'exploitation, pour y commander l'ouverture d'un fichier par cette application, sans devoir manipuler deux périphériques de pointage distincts .
Le procédé est ici présenté dans le cadre de l'utilisation d'un périphérique de pointage spécifique qui est une souris comportant une base et un boîtier mobile par rapport à cette base selon six axes.
Mais il s'applique à une multitude de périphériques de pointage spécifiques, en particulier à ceux pré- sentant au moins trois axes de déplacement, et à ceux présentant au moins quatre axes de déplacements .
Ce procédé s'applique ainsi aussi à une souris à six axes dépourvue de base fixe et délivrant des données représentatives de déplacements selon ces six axes . II s'applique également au cas d'une télécommande ou pointeur relié sans fil à l'ordinateur, un tel pointeur étant mobile dans l'espace tridimensionnel et délivrant des données représentatives de ses déplacements et rotations dans cet espace, comme par exemple celui qui est commercialisé sous la marque wiimote.
Le périphérique spécifique de pointage représenté schématiquement par le bloc 1 dans la figure 1 est une souris tridimensionnelle, comportant par exemple une base fixe et un boîtier mobile par rapport à cette base selon six axes, et qui délivre des données représentatives de ses déplacements selon ces six axes .
Elle peut être déplacée dans un plan selon deux axes x et y perpendiculaires, dits axes de translation standard, et elle comporte une molette pouvant être asso- ciée à une fonction de translation selon un troisième axe z perpendiculaire aux deux premiers. Elle est également apte à détecter et transmettre des informations représentatives de mouvements de rotation de son boîtier autour chacun de ces trois axes. Lorsque l'utilisateur manipule cette souris, elle transmet des données représentatives des déplacements qu'elle subit, qui sont éventuellement mises en forme par un pilote avant d'être adressées au bloc 2 constituant l'interface de l'émulateur. Chaque transmission comporte des instructions spécifiques se présentant sous la forme d'un ensemble de données représentatives du déplacement qu'a subi la souris sur ses six axes, depuis la dernière transmission . Comme visible dans le schéma bloc de la figure 1, les données délivrées au bloc 2 sont décomposées par un séquenceur 3 en des déplacements élémentaires, qui sont ensuite transmis au bloc 4 pour y être convertis en des instructions interprétables par l'application active 6. Ces instructions interprétables sont ensuite adressées, via le système d'exploitation 7, à l'application active 6, qui exécute alors la ou les fonctions associées au mouvement .
A cet effet, le séquenceur 3 décompose chaque en- semble de données qui lui est adressé par le bloc 2 en une série de déplacements élémentaires, qui se succèdent dans le temps, et dont la somme correspond à la totalité du déplacement décrit par cet ensemble de données. Chaque déplacement élémentaire se déroule soit selon un axe soit selon deux axes couplés, et a une amplitude plus ou moins importante .
Les axes couplés sont typiquement les translations selon les axes x et y qui sont les degrés de mobilité d'une souris standard, la majorité des applications étant capable d'interpréter des instructions dites couplées pour ces axes, c'est à dire représentatives de translations ayant des composantes sur chacun de ces deux axes.
Pour décomposer un ensemble de données, le sé- quenceur 3 effectue une lecture dans la base de données 8 qui lui retourne les axes couplés pour l'application considérée, via le bloc 10. Puis il établit une suite comportant des déplacements élémentaires simples, c'est- à-dire se produisant selon seulement un axe, et lorsque l'application le permet, des déplacements élémentaires se produisant conjointement sur deux axes.
Dans l'exemple suivant, l'ensemble de données adressé par le bloc 2 est représenté par le vecteur [+2; +5; 0; +3; +2; 0] dont les composantes correspondent suc- cessivement aux amplitudes des translations selon les axes x, y et z, et des rotations autour de ces axes.
La décomposition de cet ensemble de données pour une application dont les axes de translation selon x et selon y sont couplés est la série de déplacements élémen- taires Txy(+2; +5), Rx(+3), Ry (+2), dans laquelle Txy(+2; +5) désigne une translation couplée sur les axes x et y, Rx (+3) et Ry (+2) désignant des rotations respectivement autour des axes x et y.
Comme le montre cet exemple, chaque déplacement élémentaire est défini par la donnée d'un axe de mouvement noté Am et d'une amplitude notée Vm. La grandeur Am peut valoir Tx, Ty, Tz, Rx, Ry ou Rz, et la grandeur Vm étant une amplitude, il s'agit d'une valeur numérique. Lorsqu'il s'agit d'un déplacement élémentaire sur deux axes couplés, il est défini par la donnée de ces variables pour chacun des deux axes couplés, comme dans l'exemple ci-dessus.
Une fois que les déplacements élémentaires ont été établis par le séquenceur 3, ils sont transférés au bloc 4 pour être convertis en des instructions interprétables par l'application active.
A réception dans le convertisseur 4 d'un déplacement élémentaire, une lecture dans la base de données 8 fournit la règle de conversion à appliquer pour le convertir en une instruction interprétable par l'application active.
Une telle règle de conversion définit la syntaxe à utiliser pour former l'instruction interprétable à as- socier au déplacement élémentaire traité, pour l'application actuellement active.
Cette syntaxe comporte typiquement une instruction introductive, une instruction élémentaire, et une instruction de conclusion la clôturant. Elle comporte le cas échéant deux instructions élémentaires lorsqu'il s'agit d'un déplacement élémentaire sur deux axes couplés.
Comme représenté en figure 2, le convertisseur compare d'abord l'axe de mouvement du déplacement élémen- taire reçu, avec l'axe de mouvement du déplacement élémentaire précédent, au bloc 9 pour déterminer s'il y a eu un changement d ' axe .
Si le déplacement élémentaire précédent était nul, le bloc 11 génère l'instruction introductive asso- ciée au déplacement élémentaire à convertir. Par exemple, si la règle de conversion indique que 1 ' instruction introductive à associer au déplacement traité Txy(+2; +5), est une instruction représentative de 1 ' enfoncement du clic d'une souris standard, noté Clic(+), alors le bloc 11 génère l'instruction Clic(+) .
Si le déplacement élémentaire précédant se produisait sur un autre axe, le bloc 11 génère l'instruction de conclusion du déplacement élémentaire précédant, puis 1 ' instruction introductive du déplacement élémentaire en cours de traitement.
Par exemple, le mouvement précédent était une rotation horizontale notée Rx(+3) convertie en une instruction interprétable du type Ctrl(+), FH(+) , FH(+), FH(+) correspondant à un raccourci clavier consistant à enfon- cer la touche Ctrl puis à enfoncer trois fois la Flèche Haute du clavier, notée FH.
Si la règle de conversion de ce déplacement précédent spécifie que l'instruction interprétable doit être terminée par une instruction de relâchement de la touche Ctrl, notée Ctrl(-), alors la séquence produite par le bloc 11 est Ctrl(-) suivie de Clic(+) .
La ou les instructions élémentaires interprétables sont générées au bloc 12. Dans le cas du déplacement Txy(+2; +5), la règle de conversion mentionne par exemple deux instructions élémentaires, notées Sx() et SyO et correspondant respectivement à une translation selon l'axe x et selon l'axe y.
Dans ce cas, le bloc 12 génère successivement les instructions élémentaires Sx (+2) et Sy (+5) représentatives de translations sur les axes x et y d'une souris standard.
Les instructions établies au bloc 11 et au bloc 12 sont transmises, au fur et à mesure au bloc tampon 13, dans lequel elles sont concaténées aux instructions précédentes. A intervalles réguliers, par exemple toutes les trente millisecondes, les données du bloc tampon 13 sont adressées à l'application active qui opère alors la fonction correspondante. Ainsi, la séquence de déplacements élémentaires
Txy(+2; +5), Rx( +3), Ry(+2) est convertie au bloc 4 en une séquence d'instructions interprétables par l'application active, et correspondant à la succession des trois séquences suivantes : Clic(+) /Sx(+2)/Sy(+5) /Clic(-)
Alt(+) /FH(+)/FH(+)/FH(+)/Alt(-)
Alt (+) /FD(+) /FD(+) /Alt (-)
La première séquence correspond aux instructions interprétables représentatives d'un déplacement d'une souris standard dans le plan. La seconde séquence correspond au raccourci clavier consistant à enfoncer les touches Alt, et Flèche Haute trois fois de suite. La troisième séquence correspond aux instructions adressées à l'application sur enfoncement de la touche Alt et de la touche flèche droite, notée FD, deux fois de suite.
Comme le montrent ces séquences converties, l'émulation prend en compte et convertit les amplitudes des déplacements du périphérique spécifique. Lorsqu'il s'agit d'axes correspondant à une souris standard, les amplitudes de ces déplacements sont converties en des instructions interprétables qui intègrent elles-mêmes une ou des variables d'amplitude, ce qui permet de plus de réduire la quantité de données converties à adresser à l'application.
Lorsqu'il s'agit d'axes correspondant à des raccourcis clavier, les amplitudes de ces déplacements sont converties en des instructions interprétables dans lesquelles les instructions élémentaires sont répétées un nombre de fois proportionnel à l'amplitude du déplacement.
Dans l'exemple ci-dessus, la seconde et la troisième séquence correspondent à des axes de rotation non couplés pour l'application considérée. Mais l'application peut être prévue pour permettre de coupler les rotations autour de l'axe horizontal et vertical, par exemple dans le cas où elles sont provoquées avec les raccourcis consistant à enfoncer les touches Ctrl et FH, et les touches Ctrl et FD, respective- ment .
Dans ce cas, la séquence de déplacements élémentaires Txy(+2; +5), Rx(+3), Ry(+2) est convertie au bloc 4 en une séquence d'instructions interprétables correspondant à la succession des deux séquences suivantes : Clic(+) / Sx(+2) / Sy(+5) / Clic(-) Ctrl ( + ) /FH ( + ) /FH ( + ) /FH ( + ) /FD ( + ) /FD ( + ) /Ctrl ( - )
Comme on le voit, le fait de tirer parti du couplage d'axes, y compris dans le cadre de raccourcis cla- vier, permet de réduire la quantité d'instructions devant être traitées par l'application, ce qui d'amélioré encore la fluidité de l'émulation.
On notera que cette fluidité peut encore être accrue en panachant les instructions élémentaires présentes dans la séquence, comme dans l'exemple ci-dessous, de manière à obtenir un mouvement de rotation plus fluide.
Ctrl(+) /FH(+) /FD(+) /FH(+) /FD(+) /FH(+) /Ctrl(-)
Avantageusement, l'émulation comporte un mode dit d'axe dominant schématisé par le bloc 16 dans la figure 1. Lorsque ce mode est activé, la décomposition du bloc 3 filtre les données de déplacement qui lui sont adressées par le bloc 2 pour en supprimer les composantes de mouvement ayant une amplitude faible, avant de convertir l ' en- semble en une suite de déplacements élémentaires.
Par exemple, un ensemble de données représenté par le vecteur de déplacement [+5; +1; 0; 0; +4; +1] est alors filtré pour devenir [+5; 0; 0; 0; +4; 0] avant d'être découpé en une série de déplacements élémentaires, à savoir Tx{+5), Ry(+4), au niveau du bloc 3.
L'activation de ce mode dominant permet d'améliorer l'interaction d'une part en supprimant les composantes parasites du mouvement pour améliorer la précision de pilotage, et d'autre part en réduisant la quantité de données à convertir pour diminuer le temps de réaction de 1 ' émulation.
Le programme d'émulation est par exemple fourni sur un support d'enregistrement informatique tel qu'un disque compact comportant l'émulateur incluant la base de donnes 8, le tout étant avantageusement fourni avec le périphérique spécifique.
Cette base de données 8 peut être fournie soit prérenseignée, soit être renseignée par l'utilisateur au moyen d'un logiciel d'apprentissage également fourni avec le périphérique .
Lorsque cette base de données est renseignée, elle comporte un jeu de règles de conversion pour chaque application à piloter. Chaque jeu de règles de conversion indique les axes qui sont couplés, et donne pour chaque déplacement élémentaire la règle de conversion à appliquer.
Chaque règle de conversion définit le format à respecter pour établir une instruction interprétable as- sociée à l'axe de déplacement considéré. Typiquement, une telle règle de conversion est définie par la donnée d'une instruction d'introduction, d'une instruction élémentaire et d'une instruction de conclusion.
Le logiciel d'apprentissage implémente une démar- che dans laquelle l'utilisateur est guidé pour établir et mémoriser dans la base de données 8 un jeu de règles de conversion associé à une application que l'utilisateur souhaite piloter avec la souris à six axes.
Pour ce faire, l'utilisateur lance le logiciel d'apprentissage, qui lui demande de sélectionner l'application qu'il souhaite piloter. L'apprentissage est guidé et lui demande de sélectionner une catégorie de mouvement du périphérique spécifique, c'est à dire un axe de déplacement, ou bien la combinaison de deux axes de déplace- ment.
Le logiciel d'apprentissage demande ensuite à l'utilisateur de piloter l'application via un périphérique autre que la souris à six axes, de manière à exécuter la fonction de cette application qu'il veut piloter via la catégorie de déplacement de la souris qu'il a précédemment sélectionné.
Par exemple, si la fonction est une rotation autour de l'axe horizontal, l'utilisateur va par exemple utiliser le raccourci clavier Ctrl FH de l'application pour faire tourner l'objet autour d'un axe horizontal.
Lors de l'exécution de la fonction, l'utilisateur peut choisir un déplacement de l'objet, mais cette fonction peut être tout autre, comme par exemple l'ajustement de la taille de l'objet tridimensionnel présenté par 1 'application.
Pendant cette opération, le logiciel d'apprentissage capture la séquence d'instructions interprétables qui est adressée à l ' application pour exécuter la fonc- tion demandée.
Une fois cette opération terminée, le logiciel d'apprentissage analyse la séquence d'instructions interprétables pour en extraire la syntaxe comportant notamment l'instruction d'introduction, l'instruction élémen- taire et l'instruction de conclusion.
S'il s'agit du raccourci clavier Ctrl FH, les instructions extraites sont Ctrl(+), FH(+) et Ctrl(-) . Dans ce cas, ces instructions qui constituent la règle de conversion associée aux mouvements du périphérique pivo- tant autour d'un axe horizontal, pour l'application considérée, sont enregistrées dans la base de données 8, le cas échéant après validation par l'utilisateur.
La même démarche est ensuite exécutée pour chaque catégorie de mouvement de la souris tridimensionnelle, afin de constituer un jeu complet de règles de conversion pour l'application considéré, et de le mémoriser dans la base de données .
Dans l'exemple ci-dessus, l'apprentissage est présenté dans le cadre d'une application pilotable par des raccourcis clavier, mais comme indiqué plus haut, l'apprentissage peut faire intervenir le clavier et la souris conjointement. De plus, il est à noter que l'apprentissage peut être effectué avec tout périphérique pris en charge par l'application. En particulier, cet apprentissage peut être effectué avec un périphérique de pointage spécifique autre que celui que l'utilisateur souhaite utiliser. Par exemple, partant d'une application pilotable depuis un périphérique de pointage spécifique ayant six potentiomètre associés chacun à un axe, l'utilisateur peut utiliser ce dernier pour effectuer l'apprentissage de manière à piloter cette application avec une souris à six axes.
Dans 1 ' exemple de mise en oeuvre de 1 ' invention décrit ci-dessus, la base de données contenant les règles de conversion est mémorisée dans l'ordinateur. Mais cette base de données peut aussi être directement mémorisée dans le périphérique spécifique de pointage. Le périphérique peut aussi comporter des moyens de conversion de ses instructions de déplacement. La mise en oeuvre de l'invention peut alors être assurée sans devoir installer de logiciel ou autre sur l'ordinateur utilisé, l'ensemble des données de la base de données, et la conversion de ces données étant directement assurées au niveau du périphérique. Le fait de générer les instructions comportant des instructions élémentaires interprétables de type raccourci clavier ou autre, directement depuis le périphérique de pointage, à savoir la souris, permet de passer plusieurs barrages ou filtres, pour rendre la solution selon l'invention compatible avec un plus grand nombre d'applications informatiques.
Concrètement, certains algorithmes de sécurisation ou de protection, de type antivirus ou autre, parviennent à détecter un clavier virtuel pour le bloquer, lorsque ce clavier virtuel résulte d'une émulation logicielle exécutée dans l'ordinateur.
Lorsque l'émulation est matérielle, c'est-à-dire lorsqu'elle est assurée depuis le périphérique que constitue la souris, qui adresse directement à l'ordinateur des instructions de type touches de raccourcis ou autre, cette émulation ne court pas le risque d'être bloquée puisqu'elle ne peut être détectée.

Claims

REVENDICATIONS
1. Procédé pour piloter, à partir d'instructions spécifiques ([ +2; +5; 0; +3; +2; O]) représentatives de mouvements d'un périphérique spécifique de pointage (1) tel qu'une souris à six axes de déplacements et issues de ce périphérique spécifique, une application logicielle
(6) exécutée par un ordinateur, cette application étant pilotable avec des instructions dites interprétables is- sues d'un périphérique de saisie tel qu'un clavier alphanumérique (Alt( + ) /FH( + ) /FH( + ) /FH( + ) /Alt(-) /Alt (+ ) /FD(+ ) / FD (+) /Alt (-) ) , dans lequel les instructions spécifiques (t+2; +5; 0; +3; +2; O]) sont converties en temps réel en des instructions comportant des instructions interpréta- blés du type de celles issues du périphérique de saisie (Alt (+) /FH(+) /FH(+) /FH(+) /Alt (-) /Alt (+) /FD(+) /FD(+) /Alt (- ) ) , chaque instruction interprétable incluant des instructions élémentaires (FH(+) /FH(+) /FH (+) ) répétées un nombre de fois proportionnel à une amplitude de déplace- ment du périphérique spécifique.
2. Procédé selon la revendication 1, dans lequel la conversion en temps réel des instructions spécifiques ([+2; +5; 0; +3; +2; O]) en des instructions comportant des instructions interprétables (Alt (+) /FH(+) /FH(+) / FH(+)/Alt(-)/Alt(+)/FD(+)/FD(+)/Alt(-)) est assurée dans le périphérique de pointage spécifique.
3. Procédé selon la revendication 1 ou 2 , dans lequel les instructions spécifiques converties qui sont adressées à l'application (6) comportent des instructions interprétables (Clic (+) /Sx{+2) /Sy (+5) /Clic (-) ) du même type que les instructions adressées à cette application (6) lorsqu'elle est pilotée depuis un périphérique de pointage.
4. Procédé selon la revendication 3, dans lequel les instructions spécifiques converties qui sont adres- sées à l'application (6) comportent des instructions interprétables (Clic(+) /Sx(+2)/Sy(+5)/Clic{-) ) du même type que les instructions adressées à cette application (6) lorsqu'elle est pilotée depuis une souris à deux axes de déplacements .
5. Procédé selon la revendication 4, dans lequel les instructions spécifiques converties qui sont adressées à l'application (6) comportent des instructions interprétables (Alt (+) /FH(+) /FH (+) /FH(+) /Alt (-)) du même type que les instructions interprétables adressées à cette application (6) lorsqu'elle est pilotée depuis un clavier alphanumérique.
6. Procédé selon l'une des revendications 1 à 5, dans lequel la conversion est assurée avec un jeu de rè- gles de conversion mémorisé dans une base de données (8) enregistrée dans 1 ' ordinateur ou dans le périphérique de pointage et comportant plusieurs jeux de règles de conversion associés chacun à une application (6) à piloter.
7. Procédé selon la revendication 6, dans lequel la conversion est assurée en appliquant un jeu de règles de conversion sélectionné pour correspondre à l'application logicielle active (6), et dans lequel le basculement d'une application active (6) vers une autre application active provoque la sélection d'un autre jeu de règles de conversion associé à cette autre application active (6) pour effectuer la conversion.
8. Procédé selon la revendication 7, dans lequel chaque jeu de règles de conversion comporte une règle de conversion associée à chaque axe de déplacement (Tx, Ty, Tz, Rx, Ry, Rz) du périphérique de pointage spécifique (D -
9. Procédé selon l'une des revendications 6 à 7, dans lequel chaque règle de conversion comporte une ins- truction élémentaire (FH(+), Txy(+2; 25)) interprétable associée à au moins un axe de déplacement (Tx, Ty, Tz, Rx, Ry, Rz) du périphérique de pointage spécifique (1) .
10. Procédé selon l'une des revendications précédentes, dans lequel au moins une règle de conversion est mémorisée dans l'ordinateur ou dans le périphérique de pointage après avoir été établie en exécutant un procédé d'apprentissage comportant une première étape de sélection d'un axe de déplacement (Tx, Ty, Tz, Rx, Ry, Rz) du périphérique de pointage spécifique (1) , une seconde étape de pilotage de l'application (6) depuis un périphérique qu'elle prend en charge pour exécuter une fonction à associer à cet axe de déplacement et durant laquelle les instructions interprétables (Clic (+) /Sx(+2) / Sy(+5)/ Clic(-) /Alt (+) /FD(+) /FH(+) /FH(+) /Alt (-) /Alt (+) /FH(+) / FH(+) /Alt (-) ) issues du périphérique pris en charge sont capturées, et une troisième étape de détermination de la règle de conversion par différentiation des instructions capturées .
PCT/FR2009/000386 2008-04-04 2009-04-01 Procede pour piloter depuis un peripherique specifique une application logicielle qui n'a pas ete prevue a cet effet WO2009144403A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0801862 2008-04-04
FR0801862A FR2929725B1 (fr) 2008-04-04 2008-04-04 Procede pour piloter depuis un peripherique specifique une application logicielle qui n'a pas ete prevue a cet effet.

Publications (2)

Publication Number Publication Date
WO2009144403A2 true WO2009144403A2 (fr) 2009-12-03
WO2009144403A3 WO2009144403A3 (fr) 2010-05-06

Family

ID=39879773

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2009/000386 WO2009144403A2 (fr) 2008-04-04 2009-04-01 Procede pour piloter depuis un peripherique specifique une application logicielle qui n'a pas ete prevue a cet effet

Country Status (2)

Country Link
FR (1) FR2929725B1 (fr)
WO (1) WO2009144403A2 (fr)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0441032A2 (fr) * 1989-12-29 1991-08-14 Hewlett-Packard Company Système d'emulation de clavier
US5261079A (en) * 1990-12-18 1993-11-09 International Business Machines Corporation Interface for keyboard emulation provided by an operating system
US5945979A (en) * 1994-11-17 1999-08-31 International Business Machines Corporation Combined digital and analog cursor control
US6374208B1 (en) * 1999-03-11 2002-04-16 Robert D. Ferris System and method for adapting a PC-based application to an automated format
US20070061126A1 (en) * 2005-09-01 2007-03-15 Anthony Russo System for and method of emulating electronic input devices
WO2008004170A1 (fr) * 2006-07-05 2008-01-10 Negulescu Radu Dr Dispositif et procédé pour fournir une entrée électronique
US20080012828A1 (en) * 2005-05-09 2008-01-17 Sandio Technology Corp. Multi-dimensional input device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0441032A2 (fr) * 1989-12-29 1991-08-14 Hewlett-Packard Company Système d'emulation de clavier
US5261079A (en) * 1990-12-18 1993-11-09 International Business Machines Corporation Interface for keyboard emulation provided by an operating system
US5945979A (en) * 1994-11-17 1999-08-31 International Business Machines Corporation Combined digital and analog cursor control
US6374208B1 (en) * 1999-03-11 2002-04-16 Robert D. Ferris System and method for adapting a PC-based application to an automated format
US20080012828A1 (en) * 2005-05-09 2008-01-17 Sandio Technology Corp. Multi-dimensional input device
US20070061126A1 (en) * 2005-09-01 2007-03-15 Anthony Russo System for and method of emulating electronic input devices
WO2008004170A1 (fr) * 2006-07-05 2008-01-10 Negulescu Radu Dr Dispositif et procédé pour fournir une entrée électronique

Also Published As

Publication number Publication date
FR2929725B1 (fr) 2011-07-22
FR2929725A1 (fr) 2009-10-09
WO2009144403A3 (fr) 2010-05-06

Similar Documents

Publication Publication Date Title
EP3215900B1 (fr) Automatisation de processus robotique
KR102362311B1 (ko) 가상 화이트보드로부터의 데이터 요구
US11663784B2 (en) Content creation in augmented reality environment
RU2506630C2 (ru) Визуализация обучающих анимаций на дисплее интерфейса пользователя
US9304662B2 (en) User interface virtualization techniques
US20140218188A1 (en) Method and apparatus for analyzing concentration level of driver
EP2616903B1 (fr) Configuration de commande destinée à un système d'image numérique
CN101853157B (zh) 一种应用软件gui对象自动识别方法
EP2989593B1 (fr) Systeme de synchronisation permanente pour la saisie manuscrite
US20140013234A1 (en) User interface virtualization of context menus
US20070226650A1 (en) Apparatus and method for highlighting related user interface controls
EP2332035A2 (fr) Dispositif pour le controle d'appareil electronique par la manipulation d'objets graphiques sur un ecran tactile multicontacts
EP2922443B1 (fr) Dispositif et procede de partage visuel de donnees
US20140101562A1 (en) Virtual media with folder-mount function and graphical user interface for mounting one or more files or folders
WO2012082663A2 (fr) Ingénierie inverse de maquettes d'interface utilisateur à partir de logiciels fonctionnels
CN108885615A (zh) 针对浏览器导航的墨水输入
WO2017001560A1 (fr) Automatisation de processus robotique
US20130002567A1 (en) Method and System of Implementing Multi-Touch Panel Gestures in Computer Applications Without Multi-Touch Panel Functions
US9298079B2 (en) Sonar preview mode
WO2015102903A1 (fr) Mise en correspondance de gestes et de fonctions virtuelles
CA2370693C (fr) Systeme et methode de pilotage d'un processus decisionnel lors de la poursuite d'un but globale dans un domaine d'application determine
CN104333593A (zh) 运动控制器远程控制方法、故障诊断方法及远程控制系统
KR102011212B1 (ko) 인공지능 신경망의 학습 데이터로 사용되는 객체의 추출 및 저장방법
WO2009144403A2 (fr) Procede pour piloter depuis un peripherique specifique une application logicielle qui n'a pas ete prevue a cet effet
TW201610712A (zh) 處理影像以識別用於插入到文件的物件

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09754053

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: CONSTATATION DE LA PERTE D UN DROIT CONFORMEMENT A LA REGLE 112(1) CBE (OEB FORM 1205A EN DATE DU 20.12.2010)

122 Ep: pct application non-entry in european phase

Ref document number: 09754053

Country of ref document: EP

Kind code of ref document: A2