Pisanie z scenariuszem
Skryty są specjalnym mechanizmem aplikacji do wysyłania i przetwarzania instrukcji sekwencyjnie. Mogą skonfigurować ustawienia płyta programowania transceiver, czytać i pisać pamięć transceiver i wykonywać inne operacje.
Użyj skryptów, gdy transcewer wymaga procedury programowania, która różni się od standardów MSA i potrzebuje kolejności specjalnych instrukcji, aby pomyślnie zapisać zmiany pamięci. Skryty mogą również automatycznie powtarzać programowanie różnych obszarów pamięci przejmującego z minimalnym zaangażowaniem operatora.
Jak mogę użyć scenariusza?
- Otwórz menu Kontrola - Napisz za pomocą skryptów - Wybierz plik skryptów określenie ścieżki skryptu pliku;
- Upewnij się, że edytor zawiera poprawny kod, jeśli skrypt wykorzystuje dane edytora podczas wykonywania;
- Kliknij przycisk napisać pamięć nadawcy, aby uruchomić scenariusz.
Podczas uruchamiania skryptów aplikacja ignoruje obecnie wybrane ustawienia obszaru pamięci. Obszary czytania i pisania muszą być określone w poleceniach skryptów.
Należy pamiętać, że oprogramowanie nie sprawdza, czy pisanie się udało po zakończeniu skryptów.
Jak wyjaśnić wybrany scenariusz?
Przejdź do menu Kontrola - Pisanie za pomocą skryptów - Reset script Wyczyść wybrany scenariusz i wrócić do standardowego pisania.
Jak tworzyć scenariusz?
Syntax polecenia skryptów opiera się na protokole polecenia SFPTotal.
Przykłady:
// Write password AABBCCDD to page A2 at offset 7B
w2A2007B03AABBCCDD
// Write the code from the editor to page A0 at offset 00
w2A000007F{00;7F}
// Write value 80 to page A2 at offset 7F
w2A2007F0080
// Write value 01 to page A2 at offset FF
w2A200FF0001
PAUSE
// Read code from page A0 at offset 00
R2A000007F
Stwórz plik tekstowy i wprowadź jedną instrukcję na wiersz. Zapisz plik skryptów, aby użyć tej procedury programowania w aplikacji.
Dodatkowe instrukcje skryptów
Następujące dodatkowe polecenia są przetwarzane przez aplikację.
PAUSE
Wydawanie scenariusza przerwy. Podstawową przerwą jest 100 ms.
Opcjonalny parametr określa czas przerwy w milisekundach.
PAUSE
Delay 100ms
PAUSE=2000
Delay 2000ms
SETCHECKSUM
Przełomowe rozliczenie kwoty czekowej.
SETVAL
Ustaw komórkę edytora w opcji offset XX, aby ocenić YY. Wyznacz wartości parametrów w formacie HEX.
Parametry offsetowe akceptują wartości od 00 do 7F.
SETVAL 7F 03
{00;7F}
Zastąpienie makro {XX;YY} jest używany wewnątrz innych poleceń do wprowadzenia segmentu kodu z redaktora. Podczas wykonywania skryptów makro jest automatycznie zastąpione bieżącym danymi edytora, począwszy od bytu XX i rozciągając YY byty.
Uwaga: wartość parametrów YY 00 w HEX oznacza, że byty 1 są zastąpione, podczas gdy wartość 7F w HEX oznacza, że byty 128 są zastąpione. Ustaw YY do długości segmentu w bajtach minus jeden, wyrażony w hexadecimalnej.
Przykład: pisanie segmentu 128-byte na stronie A2h w godzinach 80h offset.
w2A200807F{00;7F}
Przykład: zapis 96-bajtowego segmentu progów DDM na stronie A2h od adresu 00h, a następnie odczyt.
W2A200005F{00;5F}
Przykład: przypisywanie zmiennej segmentu kodu 16-byte na offset 0x44, który zawiera numer serii.
$VAR2={44;0F}
$VAR1
Zmiany bufferowe $VAR1. Użyj zmiennych buferów do przechowywania segmentów kodu z redaktora i wprowadzić ich treści podczas wykonywania skryptów.
Aplikacja obsługuje warianty buferowe 10, $VAR0–$VAR9.
$VAR1={00;43}
$VAR2={44;0F}
$VAR3={54;2B}
$VAR4=002AFE
$VAR5=4F
$YYYY
Wprowadź bieżącą rocznicę do dowodu.
$MM
Wprowadź aktualny miesiąc do polecenia.
$DD
Wprowadź aktualny dzień w polecenie.
BACKUPTOFILE
Rozpocznij kopię zapasową typu modułu wybranego w ustawieniach aplikacji. Aplikacja czyta dostępne strony sekwencyjnie i przechowuje dane do pliku. Ten polecenie jest równoważne z wezwaniem funkcji z menu aplikacji.
BACKUPDIR
Ustaw katalog kopii zapasowej. Dodatkowe parametry mogą być używane do tworzenia katalogu o określonym imieniu.
Przykład: utworzenie dyrektywy kopii zapasowej z datą w jej nazwie.
$VAR5=SOMETEXT
BACKUPDIR=\$YYYY-$MM-$DD_$VAR5\
BACKUPTOFILE
IMPORTFILE
Wprowadź kod HEX z pliku binarnego do edytora.
IMPORTFILE=\catalog\filename.bin
IMPORTHEX
Wprowadź kod HEX do edytora.
Przykład: import segmentu kodu 128-byte do edytora.
IMPORTHEX=030407100000000000000006670000000802001E4F454D2020202020202020202020202000000B4053465031302D535220202020202020204120202003520091001A000058473936535230313020202020202020303830393236202068F0031200001111A8DD05AA642FAA6F5A64DAF3285A9D000000000000000000F05E482F
Wprowadź kod do edytora poprzez spotykanie zmiennych buferów.
$VAR1={00;43}
$VAR2={44;0F}
$VAR3={54;2B}
IMPORTHEX=$VAR1$VAR2$VAR3
INCREMENT
Zwiększ wartość zmiennej zawierającej hexadecimalną reprezentację kodu tak, że liczba na końcu jej tekstowej reprezentacji wzrasta o jeden.
Na przykład, reprezentacja tekstu zmiennej SN129YY00201 Konwertuje się do SN129YY00202.
Jeśli zery poprzedzają część numeryczną, aplikacja próbuje zachować pierwotną długość paska, gdy liczba zwiększona potrzebuje dodatkowego cyfry, przesuwając wartość w lewo. W ten sposób wartość SN129YY00999 Konwertuje się do SN129YY01000.
$VAR1={00;43}
// Assign the code area containing the serial number to a variable
$VAR2={44;0F}
$VAR3={54;2B}
INCREMENT $VAR2
IMPORTHEX=$VAR1$VAR2$VAR3
ERASEVENDORCODE
Wypełnij obszar określony przez sprzedawcę w edytorze z zerami.
COUNTER
Script iteracji counter.
Umieść to polecenie na początku pliku skryptowego, który działa w kręgu. Obecny rachunek iteracji jest dostępny za pośrednictwem zmiennej $COUNTER.
// Invoke the iteration counter
COUNTER
// Assign the current counter value to a variable
$VAR0=$COUNTER
// Display the counter value
ECHO $COUNTER
IF A ... B THEN ...
Porównaj wartości Użyj tego konstrukt, aby porównać A i B i wykonać polecenie następujące TAK, jeśli określony stan jest prawdziwy.
// Assign numeric values to variables
$VAR1=10
$VAR2=20
// Display a message box if the condition is true.
IF $VAR1 < $VAR2 THEN MSGBOX HELLO WORLD!
LOOP
Powtórz scenariusz. Umieść to polecenie na końcu pliku skryptowego, aby powiadomić aplikację o ponownym uruchomieniu procedury. Komanda UNLOOP odwołuje LOOP. Wykorzystaj warunek, aby wyjść z kręgu i unikać niekończących się powtórzeń.
Przykład z warunkiem.
COUNTER
...
R1A000007F
...
// Repeat the script until 10 iterations have completed
IF $COUNTER < 10 THEN LOOP
Jeśli scenariusz wchodzi w nieskończony krąg, zatrzymaj go za pomocą globalnego polecenia przerwania w <Tools - Interrupt processes>.
STRTOHEX
Konwertuj tekst po operatorze na strzałkę HEX.
$VAR9=STRTOHEX QSFP28-SR4
MSGBOX $VAR9
HEXTOSTR
Konwertuj pasek HEX po operatorze na tekst.
$VAR9=HEXTOSTR 5153465032382D535234202020202020
MSGBOX $VAR9
PADRIGHTHEX
Włóż wartość hexadecimalną w $VAR1 po prawej stronie z znakem, którego kod jest YY, aż długość jego tekstowej reprezentacji osiągnie XX.
Formaty komendy:
PADRIGHTHEX XX YY $VAR1
XXliczba dziesiątkowa określająca długość tekstowej reprezentacji struny HEX;YYkod HEX znaku używany do podłączenia łańcucha do wymaganej długości;$VAR1zmienna zawierająca strzałkę HEX do konwersji.
// Convert text to a HEX string and store it in a variable
$VAR9=STRTOHEX QSFP28-SR4
// Pad the variable on the right with spaces (HEX code 0x20) to 16 bytes
$VAR8=PADRIGHTHEX 16 20 $VAR9
ECHO $VAR8
Ten polecenie jest przydatne przy przypisywaniu tekstu do zmiennej i przekształceniu go w pasek HEX o określonej długości.
PADLEFTHEX
Działają jak PADRIGHTHEX. Podaj wartość hexadecimalną w $VAR1 po lewej stronie z znakem, którego kod jest YY, aż długość jego reprezentacji tekstowej osiąga XX.
SAVECODEDIR
Ustaw ścieżkę do automatycznego przechowywania pliku kodu bez pola dialogowego.
Przykład: ustawienie drogi wyjścia kodu do dyrektora nazwanego po numerze serii w kodzie:
$VAR4=HEXTOSTR {44;0F}
SAVECODEDIR=C:\Users\DemoUser\Desktop\Codes\$VAR4
SAVEFILE
Zapisz kod do pliku na ścieżce ustawionej przez SAVECODEDIR. Aplikacja generuje nazwę pliku automatycznie w zależności od wybranego typu modułu i strony.
$VAR4=HEXTOSTR {44;0F}
SAVECODEDIR=C:\Users\DemoUser\Desktop\Codes\$VAR4
SAVEFILE
SIGNATURE
Wykonywanie generatora z parametrami pre-set.
Ta funkcja wymaga rozszerzonej licencji generatora w aplikacji, która nie jest zawarta w standardowym pakietie.
Z zewnętrznego ognia
APIURL
Ustaw adres URL używany do nazywania zewnętrznego operatoru API.
APIURL=http://localhost/example/api.php
APICALL
Zadzwoń do zewnętrznego operatora API. Jest to równoważne z kliknięciem przycisku API w głównym oknie aplikacji.
Formularz zapytania POST dla połączeń do APIURL
POST Fields: code=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&module_type=1&table=A0&offset=00
codekod: łańcuch znaku 256 (HEX, górna część);module_typeTyp modułu (0 — GBIC, 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP);tableadres tabeli (HEX, w górnej części; na przykład: A0; A2);offsetOfset tabeli (HEX, górny; na przykład: 00, 80).
Serwer musi zwrócić strumień JSON:
{"status":1,"script":"R1A000007F\r\nW1A000007F{00;7F}\r\n","message":"","code":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","module_type":"1","table":"A0","offset":"00"}
Odpowiedź serwera musi zawierać następujące parametry:
statusstatus przetwarzania: 1 — import i wykonanie skryptów; 0 – wyświetla wiadomość bez importowania kodu;scripttekst skryptowy do wykonania po importowaniu kodu; pozostawić pusty, jeśli nie jest określony skrypt;messagepowrócił wiadomość, wyświetlana w status = 0;codekod z powrotem: łańcuch znaku 256 (HEX, górna część);module_typeTyp modułu (0 — GBIC, 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP);tableadres tabeli (HEX, w górnej części; na przykład: A0; A2);offsetOfset tabeli (HEX, górny; na przykład: 00, 80).
Operacje arytmetyczne
Procesor skryptów obsługuje dodatek, subtrakcję, rozmnożenie i podział poprzez MATH.
Formaty komendy:
MATH Value1 %Operator Value2
Wspierane operacje arytmetyczne:
+– w dodatku;-– wskaźnik substracji;*• wielokrotność;/- podział w dziale;
COUNTER
$VAR0=MATH 10 - $COUNTER
ECHO $VAR0
// Repeat the script while the condition is true
IF $VAR0 > 0 THEN LOOP
plik użytkownika
Komandy do pracy z plikiem użytkownika.
USERFILEPATH
Ustaw ścieżkę pliku użytkownika.
USERFILEPATH=C:\Users\User\Desktop\user-file.txt
GETUSERFILESTRING
Przeczytaj określoną linię z pliku użytkownika.
GETUSERFILESTRING 10
SAVETOUSERFILE
Zapisz dane do pliku użytkownika.
Przykłady:
// Store the serial number in a variable
$VAR2={44;0F}
// Save the variable value to the user file
SAVETOUSERFILE HEXTOSTR $VAR2
// Add a line feed and carriage return
SAVETOUSERFILE HEXTOSTR 0D0A
$STRCOUNTUSERFILE
Wartość ta zawiera liczbę linii w pliku użytkownika.
// Find the inserted line's position by subtracting the script iteration count from the file's line count
$VAR0=MATH $STRCOUNTUSERFILE - $COUNTER
ECHO $VAR0
// Read the most recently inserted line from the file
GETUSERFILESTRING $VAR0