8. Opis API

8.1. Instrukcje act

Wszystkie poniższe instrukcje act używają metody POST, a URL to /action/act.

8.1.1. Zapisz punkt uczenia

Nazwa instrukcji: save_point.

Parametry instrukcji:

1/**
2* @param string name Nazwa zapisywanego punktu uczenia
3* @param string speed Prędkość
4* @param string elbow_speed Prędkość łokcia
5* @param string acc Przyspieszenie
6* @param string elbow_acc Przyspieszenie łokcia
7* @param string toolnum Numer narzędzia
8* @param string workpiecenum Numer przedmiotu
9*/

Przykład instrukcji:

 1{
 2    cmd: "save_point",
 3    data:{
 4        name: "point1",
 5        speed: "100",
 6        elbow_speed: "100",
 7        acc: "100",
 8        elbow_acc: "100",
 9        toolnum: "1",
10        workpiecenum: "1"
11    }
12}

Informacja zwrotna instrukcji:

1/**
2* @return status:200 "success"
3* @return status:404 "fail"
4*/

8.2. Instrukcje sta

Wszystkie poniższe instrukcje sta używają metody POST, a URL to /action/sta.

8.2.1. Pobierz dane stanu robota

Nazwa instrukcji: basic.

Parametry instrukcji: brak.

Przykład instrukcji:

1{
2    cmd: "basic",
3}

Informacja zwrotna instrukcji:

 1/**
 2* @return status:200
 3* @param object joints Pozycje stawów
 4* @param object tcp Pozycja i orientacja kartezjańska
 5* @param array exAxisPos Pozycja zewnętrznej osi
 6* @return status:404 "fail"
 7*/
 8{
 9    joints: {
10        j1: "90",
11        j2: "90",
12        j3: "90",
13        j4: "90",
14        j5: "90",
15        j6: "90",
16    },
17    tcp: {
18        x: "100",
19        x: "100",
20        z: "100",
21        rx: "90",
22        ry: "90",
23        rz: "90",
24    },
25    exAxisPos: [0,0,0,0]
26}

8.3. Instrukcje get

Wszystkie poniższe instrukcje get używają metody POST, a URL to /action/get.

8.3.1. Pobierz punkty uczenia

Nazwa instrukcji: get_points().

Parametry instrukcji: brak.

Przykład instrukcji:

1{
2    cmd: "get_points"
3}

Informacja zwrotna instrukcji:

1/**
2* @return status:200 "success"
3* @param ${point_name}: object Informacje o punkcie uczenia
4* @return status:404 "fail"
5*/

Przykład informacji zwrotnej instrukcji:

 1{
 2    "localpoint1": {
 3        "name":"localpoint1",
 4        "elbow_speed":"1",
 5        "elbow_acc":"1",
 6        "x": "1",
 7        "y": "1",
 8        "z": "1",
 9        "rx": "1",
10        "ry": "1",
11        "rz": "1",
12        "j1": "1",
13        "j2": "1",
14        "j3": "1",
15        "j4": "1",
16        "j5": "1",
17        "j6": "1",
18        "toolnum": "1",
19        "workpiecenum": "1",
20        "speed": "1",
21        "acc": "1",
22        "E1": "1",
23        "E2: "1",
24        "E3": "1",
25        "E4": "1"
26    }
27}

8.3.2. Pobierz konfigurację systemu

Nazwa instrukcji: get_syscfg().

Parametry instrukcji: brak.

Przykład instrukcji:

1{
2    cmd: "get_syscfg"
3}

Informacja zwrotna instrukcji:

1/**
2* @return status:200 "success"
3* @param string log_count Maksymalna liczba dni przechowywania logów
4* @param string language Aktualnie używany pakiet językowy
5* @param string lifespan Czas przekroczenia limitu
6* * @return status:404 "fail"
7*/

Przykład informacji zwrotnej instrukcji:

1{
2    log_count:"10",
3    language:"zh",
4    lifespan:"1800"
5}

8.4. Instrukcje set

Wszystkie poniższe instrukcje set używają metody POST, a URL to /action/set.

8.4.1. Instrukcja ustawiania zmiennych systemowych

Nazwa instrukcji: 511.

Parametry instrukcji:

1/**
2* @param int index Numer zmiennej systemowej: 1-20
3* @param int value Wartość zmiennej systemowej
4*/

Przykład instrukcji:

1{
2    cmd: 511,
3    data:{
4        content:"SetSysVarValue(2,1)"
5    }
6}

Informacja zwrotna instrukcji:

1/**
2* @return status:200 1: sukces, 0: porażka
3* @return status:404 "fail"
4*/

Przykład informacji zwrotnej instrukcji:

11

8.4.2. Instrukcja pobierania zmiennych systemowych

Nazwa instrukcji: 512.

Parametry instrukcji:

1/**
2* @param int index Numer zmiennej systemowej: 1-20
3* /

Przykład instrukcji:

1{
2    cmd: 512,
3    data:{
4        content:"GetSysVarValue(2)"
5    }
6}

Informacja zwrotna instrukcji:

1/**
2* @return status:200
3* @param int value Wartość zmiennej systemowej
4* @return status:404 "fail"
5* /

Przykład informacji zwrotnej instrukcji:

11

8.5. Instrukcje better-sqlite3

8.5.1. Zapytanie o pierwszy wiersz w bazie danych

Parametry instrukcji:

1/**
2* @param string db_name Nazwa bazy danych (zawierająca ścieżkę bezwzględną)
3* @param string sql Instrukcja SQL
4* @return string result Znaleziony pierwszy wiersz
5*/

Treść instrukcji:

1queryget(string db_name, string sql);

8.5.2. Zapytanie o wszystkie rekordy w bazie danych

Parametry instrukcji:

1/**
2* @param string db_name Nazwa bazy danych (zawierająca ścieżkę bezwzględną)
3* @param string sql Instrukcja SQL
4* @return string result Wszystkie znalezione rekordy
5*/

Treść instrukcji:

1queryall(string db_name, string sql);

8.5.3. Wykonanie instrukcji bazy danych

1/**
2* @param string db_name Nazwa bazy danych (zawierająca ścieżkę bezwzględną)
3* @param string sql Instrukcja SQL
4* @param object obj Parametry wymagane do wykonania instrukcji SQL
5* @return \
6*/

Parametry instrukcji:

1exec(string db_name, string sql, object obj);

Treść instrukcji:

8.6. Instrukcje socket

8.6.1. socket send

Parametry instrukcji:

1/**
2* @param string send_content Treść wysyłana w komunikacji socket
3* @return \
4*/

Treść instrukcji:

1socket_cmd.send(string send_content);//8065
2socket_file.send(string send_content);//8067

8.6.2. socket recv

Parametry instrukcji:

1/**
2* @return string recv_content Treść odpowiedzi komunikacji socket
3*/

Treść instrukcji:

1socket_cmd.recv();//8065
2socket_file.recv();//8067

8.7. Instrukcje operacji na plikach

8.7.1. Zapis treści do pliku

1/**
2* @param String filename Ścieżka pliku
3* @param string content Treść do zapisania
4* @return true/false
5*/
6
7write(filename, content);

8.7.2. Odczyt treści pliku

1/**
2* @param String filename Ścieżka pliku
3* @param string content Treść do zapisania
4* @return String Treść pliku
5*/
6
7read(filename);

8.7.3. Modyfikacja uprawnień pliku

1/**
2* @param String filename Ścieżka pliku
3* @param Number mode Tryb uprawnień (np. 0644)
4* @return true/false
5*/
6
7chmod(filename, mode);

8.7.4. Odczyt zawartości katalogu, w tym podkatalogów

1/**
2* @param String path Ścieżka pliku
3* @return Array Tablica nazw plików
4*/
5
6readdir(path);

8.8. Instrukcje kompresji i dekompresji

Informacja

Rozróżnienie między wersją LA a QX:

Import modułu LA: var execSync = require(«child_process»).execSync;

Import modułu QX: var tar_utils = require(«/usr/local/etc/node/sys/tools/tar_utils»);

8.8.1. Utworzenie skompresowanego pliku tar.gz

Przykład utworzenia skompresowanego pliku tar.gz (LA):

1var cmd = 'cd / && tar -zcvf ' + FILENAME + '-C ' + DIR;
2execSync(cmd);

Opis instrukcji tworzenia skompresowanego pliku tar.gz (QX):

1/**
2* @param {Array|String} sourcePaths Tablica ścieżek źródłowych plików/katalogów lub pojedyncza ścieżka
3* @param String targetFile Ścieżka docelowego pliku kompresji
4* @param Function callback Funkcja zwrotna, parametr (error)
5* @param String basePath Ścieżka podstawowa, domyślnie '/'
6* @return \
7*/
8
9createTarGz(sourcePaths, targetFile, callback, basePath);

8.8.2. Dekompresja pliku tar.gz

Przykład dekompresji pliku tar.gz (LA):

1var cmd = 'cd / && tar -zxvf ' + FILENAME;
2execSync(cmd);

Opis instrukcji dekompresji pliku tar.gz (QX):

1/**
2* @param String sourceFile Ścieżka źródłowego pliku kompresji
3* @param String targetDir Docelowy katalog dekompresji
4* @param Function callback Funkcja zwrotna, parametr (error)
5* @return \
6*/
7extractTarGz(sourceFile, targetDir, callback);