Skok do artykułu

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?

  1. Otwórz menu Kontrola - Napisz za pomocą skryptów - Wybierz plik skryptów określenie ścieżki skryptu pliku;
  2. Upewnij się, że edytor zawiera poprawny kod, jeśli skrypt wykorzystuje dane edytora podczas wykonywania;
  3. 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

  • XX liczba dziesiątkowa określająca długość tekstowej reprezentacji struny HEX;
  • YY kod HEX znaku używany do podłączenia łańcucha do wymaganej długości;
  • $VAR1 zmienna 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
  • code kod: łańcuch znaku 256 (HEX, górna część);
  • module_type Typ modułu (0 — GBIC, 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP);
  • table adres tabeli (HEX, w górnej części; na przykład: A0; A2);
  • offset Ofset 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:

  • status status przetwarzania: 1 — import i wykonanie skryptów; 0 – wyświetla wiadomość bez importowania kodu;
  • script tekst skryptowy do wykonania po importowaniu kodu; pozostawić pusty, jeśli nie jest określony skrypt;
  • message powrócił wiadomość, wyświetlana w status = 0;
  • code kod z powrotem: łańcuch znaku 256 (HEX, górna część);
  • module_type Typ modułu (0 — GBIC, 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP);
  • table adres tabeli (HEX, w górnej części; na przykład: A0; A2);
  • offset Ofset 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
Aktualizacja: