ITUB20154055A1 - METHOD OF SENDING CONTROL COMMANDS BETWEEN A COMPUTER AND A PERIPHERAL DEVICE AND ASSOCIATED DEVICE. - Google Patents

METHOD OF SENDING CONTROL COMMANDS BETWEEN A COMPUTER AND A PERIPHERAL DEVICE AND ASSOCIATED DEVICE. Download PDF

Info

Publication number
ITUB20154055A1
ITUB20154055A1 ITUB2015A004055A ITUB20154055A ITUB20154055A1 IT UB20154055 A1 ITUB20154055 A1 IT UB20154055A1 IT UB2015A004055 A ITUB2015A004055 A IT UB2015A004055A IT UB20154055 A ITUB20154055 A IT UB20154055A IT UB20154055 A1 ITUB20154055 A1 IT UB20154055A1
Authority
IT
Italy
Prior art keywords
computer
commands
peripheral
file
pointer
Prior art date
Application number
ITUB2015A004055A
Other languages
Italian (it)
Inventor
Antonio Carbonera
Paolo Forlani
Roberto Garavaglia
Original Assignee
Prb S R L
Hermes Comm S R L S
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 Prb S R L, Hermes Comm S R L S filed Critical Prb S R L
Priority to ITUB2015A004055A priority Critical patent/ITUB20154055A1/en
Publication of ITUB20154055A1 publication Critical patent/ITUB20154055A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Description

EDP/205pl5 EDP / 205pl5

“METODO DI INVIO DI COMANDI DI CONTROLLO TRA UN COMPUTER “METHOD OF SENDING CONTROL COMMANDS BETWEEN A COMPUTER

ED UNA PERIFERICA E PERIFERICA ASSOCIATA” AND AN ASSOCIATED PERIPHERAL AND PERIPHERAL "

Campo delPinvenzione Field of the invention

La presente invenzione concerne il campo dei programmi per elaboratore ed in dettaglio riguarda un metodo di invio di comandi di controllo tra un computer ed una periferica. The present invention relates to the field of computer programs and in detail relates to a method of sending control commands between a computer and a peripheral.

La presente invenzione concerne altresì una periferica gestita attraverso il detto metodo di invio di comandi. The present invention also relates to a peripheral device managed through the said method of sending commands.

Tecnica Nota Technique Note

È noto che un computer e periferiche necessitano di uno scambio di comandi e dati da trasferire, tipicamente dai primi verso le seconde, per permettere di eseguire le funzionalità che la periferica è deputata ad eseguire. It is known that a computer and peripherals require an exchange of commands and data to be transferred, typically from the former to the latter, to allow performing the functions that the peripheral is appointed to perform.

Il metodo di scambio dati e comandi descritto nel brevetto RM2013A000728 prevede l’esecuzione dei comandi e dello scambio di dati solo in modalità immediata: le attività vengono svolte non appena è libero il dispositivo collegato (computer o periferica) che le deve svolgere. The method of data exchange and commands described in the patent RM2013A000728 provides for the execution of commands and data exchange only in immediate mode: the activities are carried out as soon as the connected device (computer or peripheral) that must perform them is free.

Inoltre il metodo originale descritto nel brevetto RM2013A000728 prevede la possibilità di mettere in coda dei dati da trasferire, ma non prevede la stessa possibilità per i comandi: mentre i dati sono accumulati e trasferiti in base alla capacità di ricezione del dispositivo destinatario, per i comandi esiste la possibilità di averne “in sospeso” solamente uno. Furthermore, the original method described in the patent RM2013A000728 provides for the possibility of queuing the data to be transferred, but does not provide the same possibility for the commands: while the data is accumulated and transferred according to the reception capacity of the recipient device, for the commands there is the possibility of having only one "pending".

In campo astronomico, sia di tipo dilettantesco sia professionale, da tempo esistono telescopi motorizzati comandati da computer. Lo scopo dei motori è In the astronomical field, both amateur and professional, computer-controlled motorized telescopes have long existed. The purpose of the engines is

EDP/205pl5 EDP / 205pl5

quello di muovere automaticamente il telescopio quando si desidera puntare stabilmente verso un oggetto celeste, in modo da compensare il continuo disallineamento causato dalla rotazione terrestre. that of automatically moving the telescope when you want to point steadily towards a celestial object, in order to compensate for the continuous misalignment caused by the Earth's rotation.

Un altro scopo della motorizzazione dei telescopi è quello di permetterne il puntamento automatico su di un oggetto celeste desiderato, per mezzo di comandi impartiti da un programma di un computer che contiene un database di oggetti stellari e calcola l’ascensione retta e la declinazione dell’oggetto. Another purpose of the motorization of telescopes is to allow automatic pointing on a desired celestial object, by means of commands given by a computer program that contains a database of stellar objects and calculates the right ascension and declination of the object.

I telescopi motorizzati sono collegati al computer, secondo il modello, per mezzo di diversi tipi di collegamento fisico, ad esempio: interfaccia seriale (RS232), interfaccia USB, interfaccia Parallela. I protocolli di comunicazione usati dai programmi di gestione dei telescopi, all’interno del collegamento fisico, per trasmettere comandi e dati sono anch’essi numerosi ed incompatibili tra loro. Ad esempio, uno dei piu noti è il protocollo usato dal telescopio LX200 lanciato nel 1992 dal produttore Meade Instruments Corporation; il protocollo esiste in una serie di varianti che sono state sviluppate, nel corso del tempo, per tenere conto delle evoluzioni dei telescopi. Un esempio di tale evoluzione è dato dalla introduzione nel telescopio di un ricevitore GPS (Global Positioning System) che permette al programma nel computer collegato di rilevare la posizione del telescopio sulla terra e di tenerne conto nel calcolo delle coordinate verso cui puntare il telescopio. The motorized telescopes are connected to the computer, according to the model, by means of different types of physical connection, for example: serial interface (RS232), USB interface, Parallel interface. The communication protocols used by the telescope management programs, within the physical connection, to transmit commands and data are also numerous and incompatible with each other. For example, one of the best known is the protocol used by the LX200 telescope launched in 1992 by the manufacturer Meade Instruments Corporation; the protocol exists in a number of variants that have been developed over time to account for the evolution of telescopes. An example of this evolution is given by the introduction in the telescope of a GPS (Global Positioning System) receiver which allows the program in the connected computer to detect the position of the telescope on the earth and to take it into account in the calculation of the coordinates towards which the telescope is aimed.

La diversità e l’incompatibilità dei protocolli di comunicazione, unite alla varietà dei collegamenti fisici, richiedono ai produttori del software di gestione dei telescopi un notevole sforzo per rendere i programmi compatibili con i diversi modelli di telescopio esistenti; inoltre chi possiede un telescopio non è libero di usare qualsiasi programma software di gestione, ma deve sceglierne uno compatibile con il proprio telescopio. The diversity and incompatibility of communication protocols, combined with the variety of physical connections, require the manufacturers of the telescope management software to make a considerable effort to make the programs compatible with the different existing telescope models; moreover, those who own a telescope are not free to use any management software program, but must choose one that is compatible with their telescope.

La Richiedente ha inoltre evidenziato che non solo i telescopi necessitano alle volte di comandi da eseguire dopo un determinato ritardo, o in sequenza o ancora The Applicant also pointed out that not only do telescopes sometimes need commands to be executed after a certain delay, either in sequence or again.

EDP/205pl5 EDP / 205pl5

mediante salti condizionati. through conditioned jumps.

Attraverso il metodo descritto nella domanda di brevetto RM2013A000728 questo non era possibile. Through the method described in the patent application RM2013A000728 this was not possible.

L’invio di comandi con sola modalità di esecuzione immediata rallenta e in alcuni casi impedisce l’esecuzione di processi complessi sulle periferiche, implicando una sorveglianza costante da parte del computer e causando quindi uno spreco di risorse computazionali che potrebbero essere destinate ad altre attività. Sending commands with immediate execution only slows down and in some cases prevents the execution of complex processes on peripherals, implying constant surveillance by the computer and thus causing a waste of computational resources that could be used for other activities.

Lo scopo della presente invenzione è dunque quello di descrivere un metodo di invio di comandi di controllo tra un computer ed una periferica il quale consenta di risolvere gli inconvenienti sopra descritti. The object of the present invention is therefore to describe a method of sending control commands between a computer and a peripheral which allows to solve the drawbacks described above.

Un ulteriore scopo della presente invenzione è quello di descrivere un telescopio motorizzato controllato da un computer, che per la ricetrasmissione di dati di orientamento almeno parzialmente automatizzato, impieghi il metodo che è oggetto della presente invenzione. A further object of the present invention is that of describing a motorized telescope controlled by a computer which, for the transceiving of at least partially automated orientation data, uses the method which is the object of the present invention.

Sommario delFinvenzione Summary of the Invention

Secondo la presente invenzione viene descritto un metodo implementato su computer di invio di comandi di controllo tra un computer ed una periferica, il detto metodo essendo caratterizzato dal fatto che: According to the present invention, a method implemented on a computer for sending control commands between a computer and a peripheral is described, said method being characterized in that:

- il detto computer esegue un passo di creazione di un file di scambio di comandi e dati realizzato a coda FIFO con una pluralità di locazioni per la memorizzazione di comandi e dati e registra una coppia di puntatori con un primo puntatore relativo a comandi da inserire nella detta coda FIFO ed un secondo puntatore relativo a comandi già memorizzati nel detto file e da eseguire; - said computer performs a step of creating a file for exchanging commands and data realized in a FIFO queue with a plurality of locations for storing commands and data and registers a pair of pointers with a first pointer relating to commands to be inserted in the said FIFO queue and a second pointer relating to commands already stored in said file and to be executed;

- il detto computer memorizza su detto file una pluralità di comandi da eseguire incrementando la posizione della locazione puntata dal detto primo puntatore di un numero pari al numero di locazioni richieste dai comandi da memorizzare - said computer stores on said file a plurality of commands to be executed by increasing the position of the location pointed to by said first pointer by a number equal to the number of locations required by the commands to be memorized

EDP/205pl5 EDP / 205pl5

senza richiedere una trasmissione di una capacità di ricezione di comandi da parte della detta periferica; without requiring a transmission of a command reception capability by said peripheral;

- il detto computer eseguendo un passo di trasmissione della posizione del detto primo puntatore e secondo puntatore a detta periferica; - said computer carrying out a step of transmitting the position of said first pointer and second pointer to said peripheral;

- la detta periferica verificando qualora il secondo puntatore punti ad una locazione diversa dalla locazione puntata dal primo puntatore e caricando successivamente nella sua memoria, in un passo di caricamento ed esecuzione di comandi, il comando contenuto nella detta locazione puntata da detto secondo puntatore ed eseguendo il detto comando; - said peripheral verifying if the second pointer points to a location other than the location pointed to by the first pointer and subsequently loading into its memory, in a command loading and execution step, the command contained in said location pointed to by said second pointer and executing the said command;

- il detto computer ricevendo da detta periferica un aggiornamento della posizione del detto secondo puntatore mediante un incremento della posizione della locazione puntata dal detto puntatore. - said computer receiving from said peripheral an update of the position of said second pointer by increasing the position of the location pointed to by said pointer.

In un aspetto della presente invenzione, il detto metodo è caratterizzato dal fatto che la detta periferica esegue un passo di incremento della locazione puntata dal detto puntatore fintanto al raggiungimento di una configurazione nella quale la locazione puntata da detto primo puntatore è identica alla locazione puntata da detto secondo puntatore. In one aspect of the present invention, the said method is characterized in that the said peripheral performs a step to increase the location pointed to by said pointer until a configuration is reached in which the location pointed to by said first pointer is identical to the location pointed to by called the second pointer.

In un aspetto della presente invenzione, il detto metodo è caratterizzato dal fatto che il detto computer memorizza su detto file un comando di attesa, contenente un tempo di attesa, e la periferica, all’ atto dell’esecuzione del detto passo di caricamento ed esecuzione di comandi, non trasmette al detto computer l’aggiornamento della posizione del detto secondo puntatore fin tanto che il detto tempo di attesa non è trascorso. In one aspect of the present invention, the said method is characterized in that the said computer stores on said file a wait command, containing a waiting time, and the peripheral, upon execution of the said loading and execution step of commands, does not transmit to said computer the update of the position of said second pointer until said waiting time has elapsed.

In un ulteriore aspetto della presente invenzione, il detto metodo è caratterizzato dal fatto che il detto computer memorizza su detto file un comando di salto condizionato ad una locazione del detto file non immediatamente precedente o successiva rispetto alla locazione alle locazioni nel quale il detto comando è memorizzato, ed in cui il detto comando contiene almeno un valore numerico In a further aspect of the present invention, the said method is characterized by the fact that the said computer stores on said file a jump command conditioned to a location of the said file not immediately preceding or following the location in which the said command is stored, and in which said command contains at least one numerical value

EDP/205pl5 EDP / 205pl5

relativo di salto di locazioni o un valore numerico assoluto indice della locazione alla quale il detto secondo puntatore deve puntare. relative jump of locations or an absolute numerical value index of the location to which said second pointer must point.

In un ulteriore aspetto della presente invenzione, il detto metodo è caratterizzato dal fatto che il detto computer memorizza su detto file un comando di salto condizionato ad una locazione del detto file non immediatamente precedente o successiva rispetto alla locazione o alle locazioni nel quale il detto comando è memorizzato, ed in cui il detto comando contiene almeno indirizzamento relativo ad una zona dati del detto file o un indirizzamento ad una lettura di un valore contenuto nella memoria della detta periferica e comprendente inoltre un passo di caricamento e comparazione elettronica tra i valori o riferimenti caricati da detta zona dati del detto file e/o del detto valore contenuto nella detta memoria della detta periferica, e di successivo aggiornamento della locazione puntata dal detto secondo puntatore in accordo. In a further aspect of the present invention, the said method is characterized by the fact that the said computer stores on said file a jump command conditioned to a location of the said file not immediately preceding or following the location or locations in which the said command is stored, and in which said command contains at least addressing relating to a data area of said file or an addressing to a reading of a value contained in the memory of said peripheral and further comprising a step for loading and electronic comparison between the values or references loaded from said data area of said file and / or of said value contained in said memory of said peripheral, and of subsequent updating of the location pointed to by said second pointer in agreement.

In un ulteriore aspetto della presente invenzione, il detto metodo è caratterizzato dal fatto che il detto computer scrive entro detto file un comando di ripetizione di uno o più comandi memorizzati a loro volta entro il detto file ed in cui il detto comando, allorché caricato da detta periferica causa l’esecuzione della ripetizione del detto uno o più comandi per un numero di volte pari al valore memorizzato nel detto comando di ripetizione, e un rispettivo aggiornamento della locazione puntata dal detto secondo puntatore per un corrispondente numero di volte meno una. In a further aspect of the present invention, the said method is characterized in that the said computer writes into the said file a command for repeating one or more commands stored in turn within the said file and in which the said command, when loaded by said peripheral causes the execution of the repetition of said one or more commands for a number of times equal to the value stored in said repetition command, and a respective update of the location pointed to by said second pointer for a corresponding number of times minus one.

In un ulteriore aspetto della presente invenzione, il detto metodo è caratterizzato dal fatto che una sequenza di codici operativi dei comandi è ricavata per mezzo di una traduzione di un codice scritto in un linguaggio ad alto livello. In a further aspect of the present invention, the said method is characterized in that a sequence of operating codes of the commands is obtained by means of a translation of a code written in a high-level language.

Secondo la presente invenzione, viene inoltre realizzata una periferica atta ad essere controllata mediante computer, la detta periferica essendo caratterizzata dal fatto di comprendere mezzi di lettura di un file i scambio di comandi e dati realizzato a coda FIFO memorizzato entro il detto computer ed avente una According to the present invention, a peripheral device adapted to be controlled by a computer is also provided, the said peripheral being characterized in that it comprises means for reading a file for the exchange of commands and data realized in a FIFO queue stored within the said computer and having a

EDP/205pl5 EDP / 205pl5

pluralità di locazioni per la memorizzazione di una pluralità comandi e dati, e in cui i detti mezzi di lettura sono configurati per leggere la posizione di un primo ed un secondo puntatore generati dal detto computer sul detto file, in cui il detto primo puntatore è relativo a comandi da inserire entro detta coda FIFO ed in cui il detto secondo puntatore è relativo a comandi già memorizzati nel detto file; la detta periferica comprendendo un’unità di elaborazione dati configurata per caricare ed eseguire i comandi preventivamente memorizzati entro il detto file dopo averli almeno temporaneamente caricati in una propria memoria, e comprendendo inoltre mezzi di aggiornamento della detta posizione del detto secondo puntatore a seguito della esecuzione di un comando della detta pluralità di comandi preventivamente memorizzati su detto file, ed in cui la detta unità di elaborazione dati è concepita per caricare ed eseguire comandi di attesa, di salto condizionato e/o di loop memorizzati su detto file in sequenza ed in modalità non-acknowledged. plurality of locations for storing a plurality of commands and data, and in which said reading means are configured to read the position of a first and a second pointer generated by said computer on said file, in which said first pointer is relative to commands to be inserted into said FIFO queue and in which said second pointer relates to commands already stored in said file; said peripheral comprising a data processing unit configured to load and execute the commands previously stored within said file after having at least temporarily loaded them into its own memory, and further comprising means for updating said position of said second pointer following execution of a command of said plurality of commands previously stored on said file, and in which said data processing unit is designed to load and execute wait, conditional jump and / or loop commands stored on said file in sequence and in non-acknowledged.

In un aspetto della presente invenzione, la detta periferica è caratterizzata dal fatto di comprendere mezzi di scrittura di risposte a detti comandi su detto file. In one aspect of the present invention, the said peripheral is characterized in that it comprises means for writing responses to said commands on said file.

In un aspetto della presente invenzione, la detta periferica è in dettaglio un telescopio dotato di servomotori controllati in azionamento, velocità e/o accelerazione dalla detta unità di elaborazione dati in accordo ai detti comandi caricati dal detto file. In one aspect of the present invention, said peripheral is in detail a telescope equipped with servomotors controlled in actuation, speed and / or acceleration by said data processing unit in accordance with said commands loaded from said file.

Descrizione delle figure Description of the figures

L’invenzione verrà ora descritta facendo riferimento alle figure annesse in una sua forma di realizzazione preferita e non limitativa. The invention will now be described with reference to the attached figures in one of its preferred and non-limiting embodiments.

- La figura 1 illustra una schema di un computer e di un telescopio tra loro connessi mediante un collegamento con filo; - Figure 1 illustrates a diagram of a computer and a telescope connected to each other by means of a wire connection;

- La figura 2 illustra un dettaglio di un file di scambio dati e comandi; - Figure 2 illustrates a detail of a data and command exchange file;

- La figura 3 illustra un dettaglio di un file di scambio dati e comandi con puntatore inizializzato; Figure 3 illustrates a detail of a data and command exchange file with an initialized pointer;

EDP/205pl5 EDP / 205pl5

- La figura 4, la figura 5 e la figura 6 illustrano brevi diagrammi di flusso di tre diverse tipologie di comando richiamate dalla presente invenzione. - Figure 4, Figure 5 and Figure 6 illustrate brief flow diagrams of three different types of control referred to by the present invention.

Descrizione dettagliata dell’invenzione Detailed description of the invention

Come illustrato nelle figure annesse, viene descritto un metodo di invio di comandi di controllo tra un computer 200 ed una periferica 300 che nella fattispecie della presente invenzione è un telescopio. As illustrated in the attached figures, a method of sending control commands between a computer 200 and a peripheral 300 which in the case of the present invention is a telescope is described.

Una funzionalità aggiunta alla tecnica descritta nel brevetto RM2013A000728 consiste nella possibilità di creare una coda di comandi (o istruzioni) che sono memorizzate all’ interno del file 100 di scambio dati e comandi, il quale presenta una prima area 500 iniziale con una pluralità di locazioni 101 destinate ad occupare comandi ed una seconda area 600 con una pluralità di locazioni destinate ad occupare dati da trasmettere tra il computer 200 e la periferica. An added functionality to the technique described in the patent RM2013A000728 consists in the possibility of creating a queue of commands (or instructions) which are stored inside the data and command exchange file 100, which has a first initial area 500 with a plurality of locations 101 intended to occupy commands and a second area 600 with a plurality of locations intended to occupy data to be transmitted between the computer 200 and the peripheral.

Segnatamente, il detto file è un file di tipo a coda FIFO. In particular, the said file is a FIFO queue type file.

Il computer 200 è configurato in modo tale da creare il detto file 100 in modo noto e da definire una coppia di puntatori PI, P2 di cui un primo puntatore PI è deputato a puntare la locazione nella quale è presente il comando da inserire da parte del computer 200 nel file 100 ed in cui un secondo puntatore P2 è invece relativo ai comandi già memorizzati all’ interno del file 100, comandi che vengono caricati ed eseguiti dalla periferica 300. The computer 200 is configured in such a way as to create said file 100 in a known way and to define a pair of pointers P1, P2 of which a first pointer P1 is appointed to point to the location in which the command to be entered by the computer 200 in file 100 and in which a second pointer P2 instead relates to the commands already stored inside the file 100, commands that are loaded and executed by the peripheral 300.

Come illustrato in figura 2, inizialmente il puntatore PI e P2 sono ambedue inizializzati in modo da puntare alla prima locazione utile della successiva coda di comandi, indicata con Cl. Quando il computer 200 desidera aggiungere un comando alla coda, scrive il codice del comando da eseguire nella locazione puntata da PI e quindi incrementa di 1 unità il puntatore PI. Se il computer 200 ha altri comandi da aggiungere alla coda, scrive ognuno di essi nelle locazioni As illustrated in Figure 2, initially the pointers P1 and P2 are both initialized so as to point to the first useful location of the subsequent command queue, indicated by Cl. When the computer 200 wishes to add a command to the queue, it writes the code of the command to be executed in the location pointed to by PI and then increments the pointer PI by 1 unit. If computer 200 has other commands to add to the queue, it writes each of them to locations

101 successive (C2) ed ogni volta incrementa il puntatore PI di una unità. 101 successive (C2) and each time it increments the pointer PI by one unit.

La periferica 300, non appena è libera, esamina il settore e vede che il puntatore As soon as the device 300 is free, it examines the sector and sees that the pointer

PI ha un valore diverso da quello di P2. Dal detto esame la periferica comprende PI has a different value from that of P2. From said examination the peripheral includes

EDP/205pl5 EDP / 205pl5

quindi che vi sono in coda uno o più comandi da eseguire e va a leggere il primo nella locazione puntata da P2, caricando il detto comando nella sua memoria e poi eseguendolo. therefore that there are in the queue one or more commands to execute and it reads the first one in the location pointed to by P2, loading the said command in its memory and then executing it.

Per ogni comando eseguito, la periferica trasmette verso il computer 200 un aggiornamento della posizione del secondo puntatore P2, in dettaglio incrementando la posizione della locazione 101 da esso puntata di una unità. Si vede quindi che questa organizzazione permette di realizzare una coda di comandi di tipo FIFO del tutto simile a quella descritta per i dati nel brevetto RM2013A000728. For each command executed, the peripheral transmits to the computer 200 an update of the position of the second pointer P2, in detail increasing the position of the location 101 pointed to by it by one unit. It can therefore be seen that this organization makes it possible to create a queue of FIFO-type commands quite similar to that described for data in the patent RM2013A000728.

Come in quel caso, quando un puntatore punta all’ultima locazione dedicata alla memorizzazione dei comandi, invece di incrementarlo lo si riporta alla prima locazione dei comandi. Anche in questo caso esiste una condizione di coda FIFO vuota (quando P1=P2) e una condizione di FIFO piena (quando P2=P1-1), As in that case, when a pointer points to the last location dedicated to storing commands, instead of increasing it, it returns to the first location of the commands. Also in this case there is an empty FIFO queue condition (when P1 = P2) and a full FIFO condition (when P2 = P1-1),

Si noti che i comandi C1,C2 e successivi possono avere lunghezza uguale per tutti, pari a uno o più byte: nel caso di lunghezza superiore a un byte i puntatori Note that the C1, C2 and subsequent commands can all have the same length, equal to one or more bytes: in the case of a length greater than one byte, the pointers

PI e P2 non sono incrementati di 1 ma di un numero pari alla lunghezza del comando in corso. Analogamente i comandi possono avere lunghezza diversa tra di loro purché il primo byte di ogni comando, oltre al codice numerico del comando stesso, contenga o implichi anche la lunghezza in byte del comando in termini di numero di locazioni 101 riservate al comando medesimo. Al momento della memorizzazione da parte del computer 200 e dell’esecuzione da parte della periferica 300 il corrispondente primo e rispettivamente secondo puntatore PI, PI and P2 are not incremented by 1 but by a number equal to the length of the command in progress. Similarly, the commands can have different lengths from each other as long as the first byte of each command, in addition to the numerical code of the command itself, also contains or implies the length in bytes of the command in terms of the number of locations 101 reserved for the command itself. At the time of storage by the computer 200 and execution by the peripheral 300 the corresponding first and respectively second pointer PI,

P2 è incrementato di un valore pari alla lunghezza del comando. P2 is incremented by a value equal to the length of the command.

Un analogo meccanismo FIFO può essere usato per trasmettere da periferica 300 a computer 200 una coda di risposte ai comandi, man mano che sono eseguiti. A similar FIFO mechanism can be used to transmit a command response queue from peripheral 300 to computer 200 as they are executed.

Nella figura 1 si vede che i puntatori e i comandi sono tutti all’interno del primo settore 500 del file 100 di comandi e dati, settore che è riservato alla presenza di comandi. In pratica è possibile dedicare qualsiasi numero di locazioni 101 a Figure 1 shows that the pointers and commands are all within the first sector 500 of the command and data file 100, a sector that is reserved for the presence of commands. In practice it is possible to dedicate any number of leases 101 to

EDP/205pl5 EDP / 205pl5

questa funzione, eventualmente usando, al posto dei puntatori PI e P2, delle coppie di puntatori in cui il primo puntatore punta al settore 500 e il secondo alla locazione 101 all’ interno del settore, in modo analogo a quanto descritto nel brevetto originale RM2013A000728. this function, possibly using, instead of the pointers PI and P2, pairs of pointers in which the first pointer points to sector 500 and the second to location 101 within the sector, in a similar way to what is described in the original patent RM2013A000728.

Per mezzo della coda di comandi è quindi possibile l’esecuzione asincrona dei comandi, conservando peraltro la possibilità di inviare al computer 200 la risposta data dalla periferica 300 ad ognuno dei comandi ricevuti. By means of the command queue it is therefore possible to execute the commands asynchronously, while retaining the possibility of sending to the computer 200 the response given by the peripheral 300 to each of the commands received.

Uguale meccanismo può essere creato, in alternativa o in aggiunta a quello finora descritto, nel caso in cui sia la periferica ad inviare comandi al computer e il computer ad inviare le risposte. The same mechanism can be created, alternatively or in addition to the one described so far, in the case in which it is the peripheral that sends commands to the computer and the computer sends the replies.

Tale organizzazione a FIFO anche per i comandi permette di realizzare un funzionamento disconnesso, in cui in una prima fase il computer 200 memorizza un’intera sessione di comandi nel file 100, ed in una successiva e seconda fase la periferica 300 carica ed esegue i comandi letti dal detto file 100 e crea le eventuali risposte. A questa seconda fase segue eventualmente una terza fase in cui le risposte sono rimandate al computer 200. L’interazione tra periferica 300 e computer 200 ha quindi una temporizz azione flessibile ed è possibile realizzare una soluzione con interazione computer-periferica frequente oppure rara, fino a giungere al caso di un funzionamento completamente disconnesso (playback). This FIFO organization also for the commands allows to perform a disconnected operation, in which in a first phase the computer 200 stores an entire command session in the file 100, and in a subsequent and second phase the peripheral 300 loads and executes the commands. read from said file 100 and creates any responses. This second phase may be followed by a third phase in which the responses are sent back to the computer 200. The interaction between peripheral 300 and computer 200 therefore has a flexible timing and it is possible to realize a solution with frequent or rare computer-peripheral interaction, up to to arrive at the case of a completely disconnected operation (playback).

Per quanto riguarda la codifica dei comandi, con l’organizzazione descritta nel corso della presente descrizione, è possibile memorizzare e quindi eseguire qualsiasi tipo di comando, codificando ogni comando con un differente codice operativo, seguito opzionalmente (secondo il tipo di comando) da uno o più dati. As regards the coding of commands, with the organization described in this description, it is possible to store and then execute any type of command, coding each command with a different operating code, optionally followed (according to the type of command) by a or more data.

In altre parole, è possibile realizzare una vera e propria macchina di elaborazione con architettura simile a quella “Von Neumann” o “Harvard”. Le istruzioni possono essere scritte direttamente per mezzo dei loro codici operativi oppure possono essere ottenute per mezzo di traduzione da un linguaggio ad alto livello quale ad esempio C oppure Java. In other words, it is possible to build a real processing machine with architecture similar to the "Von Neumann" or "Harvard" one. The instructions can be written directly by means of their operating codes or they can be obtained by means of translation from a high-level language such as C or Java.

EDP/205pl5 EDP / 205pl5

Il computer 200 e la periferica 300 connessi tra loro diventano quindi un generatore di programmi e una macchina di esecuzione dei programmi stessi; i registri e le locazioni di memoria del computer possono essere allocati nella memoria RAM interna della periferica 300 oppure all’ interno del file di scambio dati e comandi. The computer 200 and the peripheral 300 connected together thus become a program generator and a machine for executing the programs themselves; the registers and memory locations of the computer can be allocated in the internal RAM memory of the device 300 or inside the data and command exchange file.

Come illustrato nelle figure 4, 5 e 6, al pari di una macchina di elaborazione, i comandi memorizzati sul file 100 possono anche contenere dei salti condizionati (istruzione IF) in cui la decisione sull’effettuazione del salto è basata sul valore di un dato anch’esso contenuto nel file di scambio dati e comandi e indirizzato per mezzo del suo numero di settore e offset all’ interno del settore, oppure contenuto nella RAM della periferica ed eventualmente basato sull’esito di un’operazione precedente. As illustrated in Figures 4, 5 and 6, like a processing machine, the commands stored on file 100 can also contain conditional jumps (IF instruction) in which the decision on making the jump is based on the value of a given also contained in the data and command exchange file and addressed by means of its sector number and offset within the sector, or contained in the peripheral RAM and possibly based on the outcome of a previous operation.

In caso di salto condizionato dunque, quest’ultimo avviene ad una locazione 101 del detto file 100 che non è immediatamente precedente o successiva rispetto alla locazione o alle locazioni relative al comando in esecuzione, ed il comando di salto condizionato contiene un valore numerico che può essere - relativo o assoluto - pari al numero di locazioni 101 da saltare o alla locazione alla quale il secondo puntatore P2 deve puntare o ancora una locazione di memoria nella porzione 600 relativa ai dati o un indirizzamento ad una porzione di memoria del computer 200 o della periferica 300 dalla quale leggere dati o valori di riscontro per il detto salto condizionato. In the case of a conditional jump, therefore, the latter takes place at a location 101 of said file 100 which is not immediately preceding or following the location or locations relating to the command in execution, and the conditional jump command contains a numerical value that can be - relative or absolute - equal to the number of locations 101 to jump or to the location to which the second pointer P2 must point either a memory location in the data portion 600 or an addressing to a memory portion of the computer 200 or of the peripheral 300 from which to read data or acknowledgment values for said conditional jump.

Analogamente è possibile realizzare loop ed anche inserire comandi che comportano l’attesa (wait) per un tempo stabilito nei dati successivi oppure l’attesa fino ad una certa data/ora. Similarly, it is possible to create loops and also enter commands that involve waiting for a time established in the subsequent data or waiting until a certain date / time.

Nel caso di comandi di attesa, questi contengono un tempo di attesa in secondi o in cicli macchina necessario affinché la periferica 300 possa trasmettere al computer 200 un aggiornamento della posizione del secondo puntatore P2, In the case of wait commands, these contain a wait time in seconds or in machine cycles necessary for the peripheral 300 to transmit to the computer 200 an update of the position of the second pointer P2,

Nel caso di comandi di loop, infine, si tratta nello specifico di comandi di Finally, in the case of loop commands, they are specifically

EDP/205pl5 EDP / 205pl5

ripetizione di un comando o di una pluralità sequenziale di comandi memorizzati a loro volta entro il detto file 100, ed in cui il detto comando allorché viene caricato ed eseguito nella periferica 300, viene ripetuto per un numero di volte pari al valore di ripetizioni memorizzato nel comando stesso, e Γ aggiornamento della posizione del secondo puntatore P2 viene eseguita al punto di partenza per il valore di ripetizioni memorizzato nel comando meno 1. repetition of a command or of a sequential plurality of commands stored in turn within said file 100, and in which said command, when loaded and executed in peripheral 300, is repeated for a number of times equal to the repetition value stored in the command itself, and Γ update of the position of the second pointer P2 is performed at the starting point for the repetition value stored in the command minus 1.

Tali ultime possibilità trovano, ad esempio, un’applicazione nel settore astronomico come meglio descritto nell’esempio seguente, che presenta una applicazione di esempio del metodo di scambio dati e comandi come descritto nel brevetto RM2013A000728 e con le ulteriori funzionalità descritte nella presente invenzione. The latter possibilities find, for example, an application in the astronomical sector as better described in the following example, which presents an example application of the data and command exchange method as described in the patent RM2013A000728 and with the additional functions described in the present invention.

Come si vede nella figura 1, un telescopio motorizzato 300 è collegato con un computer 200 per mezzo di un cavo di interfaccia o di una equivalente metodica di collegamento senza fili. As can be seen in Figure 1, a motorized telescope 300 is connected to a computer 200 by means of an interface cable or an equivalent wireless connection method.

Un programma di gestione è installato nel computer e viene usato per gestire il telescopio. L’interfaccia può essere di un qualsiasi tipo adatto a collegare una memoria di massa esterna (USB, SCSI, SAS, SATA, Ethernet, Wi-Fi..), ma né il software di gestione né il firmware interno del telescopio debbono essere adattati in base al tipo di interfaccia usata; inoltre non è necessario installare nel computer alcun driver software di dispositivo. Queste caratteristiche sono peculiarità di base del metodo descritto nel brevetto RM2013A000728 e vengono sfruttate anche in questo caso. A management program is installed on the computer and is used to manage the telescope. The interface can be of any type suitable for connecting an external mass memory (USB, SCSI, SAS, SATA, Ethernet, Wi-Fi ..), but neither the management software nor the internal firmware of the telescope must be adapted. based on the type of interface used; furthermore, no device software drivers need to be installed on the computer. These characteristics are basic peculiarities of the method described in the patent RM2013A000728 and are also exploited in this case.

Dal punto di vista dello scambio di comandi e risposte, l’organizzazione è invece del tipo a FIFO oggetto della presente invenzione. From the point of view of the exchange of commands and responses, the organization is instead of the FIFO type object of the present invention.

Il programma di gestione, in base alle impostazioni date dall’utente, prepara una coda di comandi e la inserisce nel file 100 mediante comandi diretti dal computer The management program, based on the settings given by the user, prepares a command queue and inserts it into file 100 using direct commands from the computer

200 verso il telescopio. Tali comandi (ad esempio: inizializzazione, predisposizione dei parametri operativi del telescopio, sincronizzazione dell’ora, lettura 200 towards the telescope. These commands (for example: initialization, preparation of the telescope operating parameters, time synchronization, reading

EDP/205pl5 EDP / 205pl5

della posizione, puntamento su un corpo celeste, inseguimento in base alla rotazione terrestre e compensazione degli errori di inseguimento) sono inseriti uno dopo Γ altro direttamente nel file 100 l’uno dopo l’altro in sequenza, senza necessità di attendere l’esito dell’elaborazione o dell’esecuzione del comando precedente effettuato da parte della periferica 300. Si tratta dunque di una periferica in grado di eseguire - mediante una propria unità di elaborazione dati del tipo più conveniente - una sequenza di comandi preventivamente memorizzata in modalità non-acknowledged a partire da una sequenza di comandi preventivamente memorizzata su di un file a coda FIFO. position, pointing at a celestial body, tracking based on the Earth's rotation and compensation for tracking errors) are entered one after the other directly in file 100 one after the other in sequence, without having to wait for the outcome of the 'processing or execution of the previous command carried out by peripheral 300. It is therefore a peripheral capable of executing - by means of its own data processing unit of the most convenient type - a sequence of commands previously stored in non-acknowledged mode starting from a sequence of commands previously stored on a FIFO queue file.

Il telescopio provvede ad eseguire i comandi memorizzati nel file 100, in una sequenza in cui l’esecuzione di ogni comando inizia dopo il termine del comando precedente e mediante il processo già descritto in precedenza nella presente descrizione. Quindi il telescopio esegue la sequenza dei comandi in modo del tutto analogo a quello in cui un calcolatore esegue una dopo l’altra le istruzioni contenute in un programma. The telescope executes the commands stored in file 100, in a sequence in which the execution of each command begins after the end of the previous command and through the process already described above in this description. Then the telescope executes the sequence of commands in a completely similar way to that in which a computer executes the instructions contained in a program one after the other.

Esistono casi particolari in cui, al pari di un programma di calcolatore, l’esecuzione dei comandi avviene in modo diverso dalla semplice successione in sequenza. Un primo caso è quello dell’uso di un salto condizionato (istruzione There are special cases in which, like a computer program, the execution of commands occurs in a different way from simple succession in sequence. A first case is that of the use of a conditional jump (instruction

IF), che avviene ad esempio nel caso in cui un comando non va a buon fine per una qualsiasi ragione (ad esempio, un posizionamento non può essere attuato perché un motore arriva a fine corsa). In tal caso sarebbe inutile per il telescopio proseguire nell’esecuzione dei comandi successivi memorizzati nel file 100; quindi il programma memorizzato nel file 100 prevede, in tal caso, un salto ad una diversa parte di programma che provvede a gestire l’errore (ad esempio, eseguendo un reset ed un riposizionamento del telescopio oppure avvertendo l’utente). IF), which occurs for example in the case in which a command fails for any reason (for example, a positioning cannot be carried out because a motor reaches the end of its stroke). In this case it would be useless for the telescope to continue executing the subsequent commands stored in file 100; therefore the program stored in file 100 foresees, in this case, a jump to a different part of the program that manages the error (for example, by performing a reset and repositioning of the telescope or by warning the user).

In altre parole, con il metodo del programma memorizzato, il telescopio 300 esegue in modo autonomo una serie di operazioni che, nella tecnica precedente, EDP/205pl5 In other words, with the stored program method, the telescope 300 autonomously performs a series of operations which, in the previous technique, EDP / 205pl5

erano seguite una per una dal programma di gestione. Il principale vantaggio della tecnica sta nel fatto che il programma opera con comandi a più alto livello che possono essere maggiormente standardizzati, quindi meno dipendenti dalla marca e dal modello di telescopio. they were followed one by one by the management program. The main advantage of the technique lies in the fact that the program operates with higher level commands that can be more standardized, therefore less dependent on the brand and model of telescope.

Un altro vantaggio sta nel fatto che i comandi possono essere accumulati con il computer collegato al telescopio ed eseguiti in seguito con il solo telescopio scollegato dal computer, senza dover quindi disporre del computer 200 vicino al telescopio e senza il problema dato dalla luce emessa dallo schermo del computer. Another advantage lies in the fact that the commands can be accumulated with the computer connected to the telescope and carried out later with the telescope disconnected from the computer, without therefore having to have the computer 200 near the telescope and without the problem of light emitted from the screen. Of computer.

Un altro esempio di sfruttamento delle caratteristiche innovative della tecnica qui descritta è nella possibilità di inserire temporizzazioni (wait) nella sequenza di comandi. Una delle funzionalità offerte dai programmi di gestione è quella di programmare un “tour”, nel quale il telescopio si posiziona in sequenza, con tempi prestabiliti, verso una serie di diversi corpi celesti che si desidera osservare. Dopo essersi posizionato su un corpo, il telescopio attende per un tempo prestabilito durante il quale provvede solo all’ inseguimento, e poi si posiziona sul corpo successivo. Another example of exploitation of the innovative characteristics of the technique described here is in the possibility of inserting timings (wait) in the sequence of commands. One of the functions offered by the management programs is to program a “tour”, in which the telescope positions itself in sequence, with predetermined times, towards a series of different celestial bodies that you want to observe. After positioning itself on a body, the telescope waits for a predetermined time during which it only provides for tracking, and then positions itself on the next body.

Il “tour” può essere programmato, tutto in una volta, scaricando una sequenza di comandi dal computer al telescopio; verrà eseguito dal telescopio, con le temporizzazioni stabilite, anche a computer scollegato. The “tour” can be programmed, all at once, by downloading a sequence of commands from the computer to the telescope; it will be performed by the telescope, with the established timings, even when the computer is disconnected.

L’applicazione del metodo, fin qui illustrata con riferimento al campo astronomico, è vantaggiosa in qualsiasi campo della tecnica; per illustrare l’uso del “loop” programmato nel file di comandi si può ad esempio entrare nel campo della robotica industriale. The application of the method, illustrated so far with reference to the astronomical field, is advantageous in any field of technique; to illustrate the use of the "loop" programmed in the command file, for example, you can enter the field of industrial robotics.

Se un braccio robotizzato deve eseguire 100 volte la stessa operazione, quale ad esempio la movimentazione di un pezzo afferrandolo e depositandolo in un’altra posizione, anziché ripetere 100 volte gli stessi comandi è possibile inserirli una sola volta nel file 100 all’interno di un loop da eseguire 100 volte. If a robotic arm has to perform the same operation 100 times, such as moving a piece by grabbing it and depositing it in another position, instead of repeating the same commands 100 times, it is possible to insert them only once in file 100 within a loop to be performed 100 times.

EDP/205pl5 EDP / 205pl5

Come si vede dagli esempi riportati nella descrizione, il metodo presenta vantaggi che possono essere sfruttati in qualsiasi campo della tecnologia in cui esiste una comunicazione tra un computer e una periferica. As can be seen from the examples given in the description, the method has advantages that can be exploited in any field of technology in which there is communication between a computer and a peripheral.

È infine chiaro che all’oggetto della presente invenzione possono essere applicate aggiunte, modifiche o varianti ovvie per un tecnico del ramo senza per questo fuoriuscire daH’ambito di tutela fornito dalle rivendicazioni annesse. Finally, it is clear that additions, modifications or obvious variants for a person skilled in the art can be applied to the object of the present invention without thereby departing from the scope of protection provided by the attached claims.

Claims (10)

Rivendicazioni 1. Metodo implementato su computer di invio di comandi di controllo tra un computer (200) ed una periferica (300), il detto metodo essendo caratterizzato dal fatto che: - il detto computer esegue un passo di creazione di un file (100) di scambio di comandi e dati realizzato a coda FIFO con una pluralità di locazioni (101) per la memorizzazione di comandi e dati e registra una coppia di puntatori (PI, P2) con un primo puntatore (PI) relativo a comandi da inserire nella detta coda FIFO ed un secondo puntatore (P2) relativo a comandi già memorizzati nel detto file (100) e da eseguire; - il detto computer memorizza su detto file (100) una pluralità di comandi da eseguire incrementando la posizione della locazione (101) puntata dal detto primo puntatore (PI) di un numero pari al numero di locazioni (101) richieste dai comandi da memorizzare senza richiedere una trasmissione di una capacità di ricezione di comandi da parte della detta periferica (300); - il detto computer eseguendo un passo di trasmissione della posizione del detto primo puntatore e secondo puntatore (PI, P2) a detta periferica (300); - la detta periferica verificando qualora il secondo puntatore (P2) punti ad una locazione (101) diversa dalla locazione (101) puntata dal primo puntatore (PI) e caricando successivamente nella sua memoria, in un passo di caricamento ed esecuzione di comandi, il comando contenuto nella detta locazione (101) puntata da detto secondo puntatore (P2) ed eseguendo il detto comando; - il detto computer ricevendo da detta periferica un aggiornamento della posizione del detto secondo puntatore (P2) mediante un incremento della posizione della locazione (101) puntata dal detto puntatore (P2). Claims 1. Method implemented on a computer for sending control commands between a computer (200) and a peripheral (300), said method being characterized in that: - the said computer performs a step of creating a file (100) for exchanging commands and data realized in a FIFO queue with a plurality of locations (101) for storing commands and data and registers a pair of pointers (PI, P2 ) with a first pointer (PI) relating to commands to be inserted in said FIFO queue and a second pointer (P2) relating to commands already stored in said file (100) and to be executed; - said computer stores on said file (100) a plurality of commands to be executed by increasing the position of the location (101) pointed to by said first pointer (PI) by a number equal to the number of locations (101) required by the commands to be stored without requesting a transmission of a command reception capability by said peripheral (300); - said computer executing a step of transmitting the position of said first pointer and second pointer (PI, P2) to said peripheral (300); - the said peripheral verifying if the second pointer (P2) points to a location (101) different from the location (101) pointed to by the first pointer (PI) and subsequently loading into its memory, in a command loading and execution step, the command contained in said location (101) pointed to by said second pointer (P2) and executing said command; - said computer receiving from said peripheral an update of the position of said second pointer (P2) by increasing the position of the location (101) pointed to by said pointer (P2). 2. Metodo implementato su computer di invio di comandi di controllo tra un computer (200) ed una periferica (300) secondo la rivendicazione 1, caratterizzato dal fatto che il la detta periferica (300) esegue un passo di incremento della locazione (101) puntata dal detto puntatore (P2) fintanto al raggiungimento di una configurazione nella quale la locazione (101) puntata da detto primo puntatore (PI) è identica alla locazione (101) puntata da detto secondo puntatore (P2). 2. Method implemented on a computer for sending control commands between a computer (200) and a peripheral (300) according to claim 1, characterized in that the said peripheral (300) performs a step to increase the location (101) pointed by said pointer (P2) until reaching a configuration in which the location (101) pointed to by said first pointer (PI) is identical to the location (101) pointed to by said second pointer (P2). 3. Metodo implementato su computer di invio di comandi di controllo tra un computer (200) ed una periferica (300) secondo la rivendicazione 1 o la rivendicazione 2, caratterizzato dal fatto che il detto computer (200) memorizza su detto file (100) un comando di attesa, contenente un tempo di attesa, e la periferica, all’atto dell’esecuzione del detto passo di caricamento ed esecuzione di comandi, non trasmette al detto computer (200) l’aggiornamento della posizione del detto secondo puntatore (P2) fin tanto che il detto tempo di attesa non è trascorso. Method implemented on a computer for sending control commands between a computer (200) and a peripheral (300) according to claim 1 or claim 2, characterized in that said computer (200) stores on said file (100) a waiting command, containing a waiting time, and the peripheral, upon executing the said step of loading and executing commands, does not transmit to the said computer (200) the update of the position of the said second pointer (P2 ) as long as the said waiting time has not elapsed. 4. Metodo implementato su computer per l’invio di comandi di controllo tra un computer (200) ed una periferica secondo la rivendicazione 1 o la rivendicazione 2, caratterizzato dal fatto che il detto computer (200) memorizza su detto file (100) un comando di salto condizionato ad una locazione (101) del detto file (100) non immediatamente precedente o successiva rispetto alla locazione (101) o alle locazioni (101) nel quale il detto comando è memorizzato, ed in cui il detto comando contiene almeno un valore numerico relativo di salto di locazioni (101) o un valore numerico assoluto indice della locazione (101) alla quale il detto secondo puntatore (P2) deve puntare. 4. Method implemented on a computer for sending control commands between a computer (200) and a peripheral according to claim 1 or claim 2, characterized in that said computer (200) stores on said file (100) a jump command conditioned to a location (101) of the said file (100) not immediately preceding or following the location (101) or locations (101) in which the said command is stored, and in which the said command contains at least one relative numerical value of jump of locations (101) or an absolute numerical value index of the location (101) to which said second pointer (P2) must point. 5. Metodo implementato su computer per l’invio di comandi di controllo tra un computer (200) ed una periferica secondo la rivendicazione 4, caratterizzato dal fatto che il detto computer (200) memorizza su detto file (100) un comando di salto condizionato ad una locazione (101) del detto file (100) non immediatamente precedente o successiva rispetto alla locazione (101) o alle locazioni (101) nel quale il detto comando è memorizzato, ed in cui il detto comando contiene almeno indirizzamento relativo ad una zona dati (600) del detto file (100) o un indirizzamento ad una lettura di un valore contenuto nella memoria della detta periferica (300) e comprendente inoltre un passo di caricamento e comparazione elettronica tra i valori o riferimenti caricati da detta zona dati (600) del detto file (100) e/o del detto valore contenuto nella detta memoria della detta periferica, e di successivo aggiornamento della locazione (101) puntata dal detto secondo puntatore (P2) in accordo. 5. Method implemented on a computer for sending control commands between a computer (200) and a peripheral according to claim 4, characterized in that said computer (200) stores on said file (100) a conditional jump command to a location (101) of the said file (100) not immediately preceding or following the location (101) or locations (101) in which the said command is stored, and in which the said command contains at least addressing relating to a zone data (600) of said file (100) or an address to a reading of a value contained in the memory of said peripheral (300) and further comprising an electronic loading and comparison step between the values or references loaded from said data area (600 ) of said file (100) and / or of said value contained in said memory of said peripheral, and of subsequent updating of the location (101) pointed to by said second pointer (P2) in agreement. 6. Metodo implementato su computer per rinvio di comandi di controllo tra un computer (200) ed una periferica (300) secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che il detto computer (200) scrive entro detto file (100) un comando di ripetizione di uno o più comandi memorizzati a loro volta entro il detto file (100) ed in cui il detto comando, allorché caricato da detta periferica (200) causa l’esecuzione della ripetizione del detto uno o più comandi per un numero di volte pari al valore memorizzato nel detto comando di ripetizione, e un rispettivo aggiornamento della locazione puntata dal detto secondo puntatore (P2) per un corrispondente numero di volte meno una. 6. Method implemented on a computer for sending control commands between a computer (200) and a peripheral (300) according to any one of the preceding claims, characterized in that the said computer (200) writes a command into said file (100) repetition of one or more commands stored in turn within said file (100) and in which said command, when loaded from said peripheral (200) causes the repetition of said one or more commands for a number of times equal to the value stored in said repeat command, and a respective update of the location pointed to by said second pointer (P2) for a corresponding number of times minus one. 7. Metodo implementato su computer per l’invio di comandi di controllo tra un computer (200) ed una periferica (300) secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che una sequenza di codici operativi dei comandi è ricavata per mezzo di una traduzione di un codice scritto in un linguaggio ad alto livello. 7. Method implemented on a computer for sending control commands between a computer (200) and a peripheral (300) according to any one of the preceding claims, characterized in that a sequence of operating codes of the commands is obtained by means of a translation of a code written in a high level language. 8. Periferica (300) atta ad essere controllata mediante computer (200), la detta periferica essendo caratterizzata dal fatto di comprendere mezzi di lettura di un file (100) di scambio di comandi e dati realizzato a coda FIFO memorizzato entro il detto computer (200) ed avente una pluralità di locazioni (101) per la memorizzazione di una pluralità comandi e dati, e in cui i detti mezzi di lettura sono configurati per leggere la posizione di un primo ed un secondo puntatore (PI, P2) generati dal detto computer (200) sul detto file, in cui il detto primo puntatore (PI) è relativo a comandi da inserire entro detta coda F1FO ed in cui il detto secondo puntatore (P2) è relativo a comandi già memorizzati nel detto file (100); la detta periferica comprendendo un’unità di elaborazione dati configurata per caricare ed eseguire i comandi preventivamente memorizzati entro il detto file (100) dopo averli almeno temporaneamente caricati in una propria memoria, e comprendendo inoltre mezzi di aggiornamento della detta posizione del detto secondo puntatore (P2) a seguito della esecuzione di un comando della detta pluralità di comandi preventivamente memorizzati su detto file (100), ed in cui la detta unità di elaborazione dati è concepita per caricare ed eseguire comandi di attesa, di salto condizionato e/o di loop memorizzati su detto file (100) in sequenza ed in modalità non-acknowledged. 8. Peripheral (300) adapted to be controlled by a computer (200), said peripheral being characterized in that it comprises means for reading a file (100) for exchanging commands and data realized in a FIFO queue stored within said computer ( 200) and having a plurality of locations (101) for storing a plurality of commands and data, and in which said reading means are configured to read the position of a first and a second pointer (PI, P2) generated by said computer (200) on said file, in which said first pointer (PI) relates to commands to be inserted into said queue F1FO and in which said second pointer (P2) relates to commands already stored in said file (100); the said peripheral comprising a data processing unit configured to load and execute the commands previously stored within the said file (100) after having at least temporarily loaded them into its own memory, and further comprising means for updating the said position of the said second pointer ( P2) following the execution of a command of said plurality of commands previously stored on said file (100), and in which said data processing unit is designed to load and execute wait, conditional jump and / or loop commands stored on said file (100) in sequence and in non-acknowledged mode. 9. Periferica secondo la rivendicazione 8, caratterizzata dal fatto di comprendere mezzi di scrittura di risposte a detti comandi su detto file (100). 9. Peripheral according to claim 8, characterized in that it comprises means for writing responses to said commands on said file (100). 10. Periferica secondo una qualsiasi delle rivendicazioni 8 o 9, caratterizzata dal fatto di essere un telescopio dotato di servomotori controllati in azionamento, velocità e/o accelerazione dalla detta unità di elaborazione dati in accordo ai detti comandi caricati dal detto file (100).10. Peripheral according to any one of claims 8 or 9, characterized in that it is a telescope equipped with servomotors controlled in actuation, speed and / or acceleration by said data processing unit in accordance with said commands loaded from said file (100).
ITUB2015A004055A 2015-09-30 2015-09-30 METHOD OF SENDING CONTROL COMMANDS BETWEEN A COMPUTER AND A PERIPHERAL DEVICE AND ASSOCIATED DEVICE. ITUB20154055A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
ITUB2015A004055A ITUB20154055A1 (en) 2015-09-30 2015-09-30 METHOD OF SENDING CONTROL COMMANDS BETWEEN A COMPUTER AND A PERIPHERAL DEVICE AND ASSOCIATED DEVICE.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ITUB2015A004055A ITUB20154055A1 (en) 2015-09-30 2015-09-30 METHOD OF SENDING CONTROL COMMANDS BETWEEN A COMPUTER AND A PERIPHERAL DEVICE AND ASSOCIATED DEVICE.

Publications (1)

Publication Number Publication Date
ITUB20154055A1 true ITUB20154055A1 (en) 2017-03-30

Family

ID=55070079

Family Applications (1)

Application Number Title Priority Date Filing Date
ITUB2015A004055A ITUB20154055A1 (en) 2015-09-30 2015-09-30 METHOD OF SENDING CONTROL COMMANDS BETWEEN A COMPUTER AND A PERIPHERAL DEVICE AND ASSOCIATED DEVICE.

Country Status (1)

Country Link
IT (1) ITUB20154055A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126584A1 (en) * 2006-11-29 2008-05-29 Sony Ericsson Mobile Communications Ab System and Method for Receiving Control Commands at a Peripheral Device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126584A1 (en) * 2006-11-29 2008-05-29 Sony Ericsson Mobile Communications Ab System and Method for Receiving Control Commands at a Peripheral Device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Queue (abstract data type)", WIKIPEDIA, 13 August 2015 (2015-08-13), XP055258011, Retrieved from the Internet <URL:https://en.wikipedia.org/w/index.php?title=Queue_(abstract_data_type)&oldid=675911432> [retrieved on 20160314] *

Similar Documents

Publication Publication Date Title
US11135719B2 (en) Real-time control system, real-time control device and system control method
US8868241B2 (en) Robot task commander with extensible programming environment
US11325263B2 (en) System and method for real-time robotic control
CN102046337B (en) Control-command architecture for a mobile robot using articulated limbs
US8046444B2 (en) Universal network adapter for industrial control networks
JP2005515903A (en) Abstraction and aggregation within the hardware abstraction layer of robot sensors and actuators
KR920007950B1 (en) Direct access memory controller
JP6485152B2 (en) Multi-CPU system and CPU upgrade method
CN104050111B (en) Different types of memory is accessed by the corresponding command with different timing requirements
ITUB20154055A1 (en) METHOD OF SENDING CONTROL COMMANDS BETWEEN A COMPUTER AND A PERIPHERAL DEVICE AND ASSOCIATED DEVICE.
Aragão et al. Middleware interoperability for robotics: A ros–yarp framework
CN109571485A (en) Robot movement-control system and control method based on ROS and SQLite
KR101994441B1 (en) Flight object guidance and control hwil simulation system including inertial navigation system and configuration methods of the same
KR101672682B1 (en) control system, master station, and remote station
JP2011081490A (en) Display device
KR100536537B1 (en) Structure description method of robot, robot apparatus, and component parts of robot
CN113508346B (en) Control device and software deployment method
JP4569653B2 (en) Robot control apparatus, robot control method, and robot control program
Bergeon et al. Raspberry Pi as an Interface for a Hardware Abstraction Layer: Structure of Software and Extension of the Turtlebot 2–Kobuki Protocol
Petrovsky et al. Attack on the drones
CN108121355A (en) Satellite operating system and satellite based on ROS systems
JP2002283257A (en) Position control method of moving object and robot controller by applying this method
WO2024053789A1 (en) Process management system using micro-service architecture based on blockchain network
JP2007026235A (en) Verification program execution method in multiprocessor system
Cebula et al. Design and implementation of an information system to study the repeatability of the orientation in space for medical applications