Funzione per creare la MOT. Viene creata la zona di memoria per la gestione dell'insieme di punti.
|
i32 mot_create (i32 nEl, i32 nInt, i32 sizeOfOther, i32 flag)
|
|
Dimensione in numero di punti della MOT (>=1).
|
|
Numero delle grandezze da interpolare (ordinate) per ogni punto (>= 1).
|
|
Dimensione in byte delle informazioni ausiliarie associate al punto (>=0).
|
|
Flag di gestione:
|
|
|
0
|
0x00000001
|
Se TRUE, permette l'inserimento dei punti con ascissa qualsiasi invece che con ascissa crescente (vedi mot_append()).
|
1
|
0x00000002
|
Se TRUE, i dati aggiuntivi resi con la mv_mot_exec() sono riferiti al punto finale anzichè quello iniziale del tratto di interpolazione.
|
4
|
0x00000010
|
Se TRUE, elimina i punti dopo l'esecuzione (viene eliminato il punto (n-1) quando l'esecuzione oltrepassa il punto n).
|
Codice a valore del tipo di interpolazione (Bit 16-:-19, 0x000F00xx):
|
16
|
0x000100xx
|
Interpolazione lineare.
|
17
|
0x000200xx
|
Interpolazione cubica con calcolo automatico dei parametri.
|
16-17
|
0x000300xx
|
Interpolazione cubica calcolata specificando il valore della derivata prima nel punto (la velocità, se si tratta di interpolazione di posizioni).
|
18
|
0x000400xx
|
Interpolazione pentica (di quinto ordine) con calcolo automatico dei parametri.
|
16-18
|
0x000500xx
|
Interpolazione pentica calcolata specificando i valori delle derivate prima e seconda nel punto (la velocità e l'accelerazione, se si tratta di interpolazione di posizioni).
|
16-17-18-19
|
0x000F00xx
|
Interpolazione mista (diversa per ogni tratto).
Il tipo viene specificato nella struttura other (vedi mot_append()). Il primo campo della struttura other usata nella mot_append() deve necessariamente essere di tipo i32 e contenere il tipo di interpolazione: 1=lineare, 2=cubica automatica, 4=pentica automatica.
|
|
|
Rende:
|
|
> 0
|
Operazione OK.
Il valore rappresenta il codice della MOT.
|
-1
|
Valore nEl illegale.
|
-2
|
Valore nInt illegale.
|
-3
|
Valore nEl eccessivo, memoria insufficiente.
|
-4
|
Errore interno.
|
-8
|
Selezionato interpolazione mista, ma la struttura other non esiste o ha dimensione < sizeOfOther.
|
-9
|
Codice di interpolazione sconosciuto.
|
|
|
Rule, Task.
|
|
|
NOTA: Ogni zona di memoria creata con mot_create() deve essere distrutta con una corrispondente mot_delete(); chiamate successive a mot_create() creano differenti zone di memoria.
Esempio di utilizzo:
int flag, flag2
string appo
flag.(0) = 1
flag = flag r_or (0x50000)
rMotID = mot_create(1000, 1, 0, flag)
if(rMotID < 0)
str_format(appo, "Unable to create MOT error code :%d", rMotID)
inf_report(0x100, appo)
rMotID = 0
endif
flag2.(0) = 1
flag2 = flag2 r_or (0x40000)
rMotID2 = mot_create(1000, 1, 0, flag2)
if(rMotID2 < 0)
str_format(appo, "Unable to create MOT2 error code :%d", rMotID2)
inf_report(0x100, appo)
rMotID2 = 0
endif
|
|