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);