Menulis dengan skrip
Skrip adalah mekanisme aplikasi khas untuk menghantar dan memproses arahan secara berurutan. Mereka boleh mengkonfigurasi tetapan papan pemrograman transceiver, membaca dan menulis memori transceiver dan menjalankan operasi lain.
Gunakan skrip apabila penerima memerlukan prosedur pemrograman yang berbeza daripada standard MSA dan memerlukan satu siri arahan khas untuk menyimpan perubahan memori dengan berjaya. Skrip juga boleh mengautomatikkan pemrograman berulang kawasan memori transceptor yang berbeza dengan penglibatan operator minimum.
Bagaimanakah saya boleh menggunakan skrip?
- Membuka menu Kawalan - Menulis menggunakan skrip - Pilih fail skrip untuk menentukan laluan fail skrip;
- Pastikan editor mengandungi kod yang betul jika skrip menggunakan data editor semasa pelaksanaan;
- Klik butang memori penyerang untuk menjalankan skrip.
Apabila menjalankan skrip, aplikasi mengabaikan tetapan kawasan memori yang dipilih pada masa ini. Kawasan bacaan dan penulisan mesti dinyatakan dalam perintah skrip.
Sila ambil perhatian bahawa perisian tidak mengesahkan sama ada penulisan berjaya selepas skrip selesai.
Bagaimanakah saya boleh menyalakan skrip yang dipilih?
Pergi ke menu Mengawal - Menulis menggunakan skrip - Reset script untuk memadamkan skrip yang dipilih dan kembali kepada penulisan standard.
Bagaimanakah saya boleh membuat skrip?
Syntax perintah skrip adalah berdasarkan protokol perintah SFPTotal.
Contoh yang:
// 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
Mencipta fail teks dan masukkan satu arahan per baris. Simpan fail skrip untuk menggunakan prosedur pemrograman ini dalam aplikasi.
Perintah Skrip Tambahan
Perintah tambahan berikut diproses oleh permohonan.
PAUSE
Perhentian pelaksanaan skrip. Perhentian lalai ialah 100 ms.
Parameter opsional menetapkan tempoh rehat dalam milliseconds.
PAUSE
Delay 100ms
PAUSE=2000
Delay 2000ms
SETCHECKSUM
Mengira semula jumlah cek.
SETVAL
Setkan sel editor pada offset XX untuk nilai YY. Menentukan nilai parameter dalam format HEX atas.
Parameter offset menerima nilai dari 00 kepada 7F.
SETVAL 7F 03
{00;7F}
Penggantian makro {XX;YY} digunakan dalam perintah lain untuk memasukkan segmen kod daripada editor. Semasa pelaksanaan skrip, makro secara automatik digantikan dengan data editor semasa bermula pada byte XX dan meliputi byte YY.
Perhatikan bahawa nilai parameter YY 00 dalam HEX bermakna bahawa byte 1 digantikan, manakala nilai 7F dalam HEX bermakna bahawa byte 128 digantikan. Set YY kepada panjang segmen dalam byte minus satu, dinyatakan dalam hexadecimal.
Contoh: menulis segmen 128-byte ke halaman A2h pada offset 80h.
w2A200807F{00;7F}
Contoh: menulis segmen sempadan 96-byte DDM ke halaman A2h pada offset 00h, diikuti dengan bacaan.
W2A200005F{00;5F}
Contoh: menugaskan variabel kepada segmen kod byte 16 pada offset 0x44 yang mengandungi nombor siri.
$VAR2={44;0F}
$VAR1
Buffer variabel $VAR1. Gunakan variabel buffer untuk menyimpan segmen kod daripada editor dan memasukkan kandungan mereka semasa pelaksanaan skrip.
Aplikasi ini menyokong variabel buffer 10, $VAR0–$VAR9.
$VAR1={00;43}
$VAR2={44;0F}
$VAR3={54;2B}
$VAR4=002AFE
$VAR5=4F
$YYYY
Masukkan tahun ini ke dalam perintah.
$MM
Masukkan bulan semasa ke dalam perintah.
$DD
Masukkan hari semasa ke dalam perintah.
BACKUPTOFILE
Mulakan sandaran untuk jenis modul yang dipilih dalam tetapan aplikasi. Aplikasi membaca halaman yang tersedia secara berurutan dan menyimpan data ke dalam fail. Perintah ini sama dengan mengingatkan fungsi daripada menu aplikasi.
BACKUPDIR
Menetapkan direktori sandaran. Parameter tambahan boleh digunakan untuk mencipta direktori dengan nama tertentu.
Contoh: Mencipta direktori sandaran dengan tarikh dalam namanya.
$VAR5=SOMETEXT
BACKUPDIR=\$YYYY-$MM-$DD_$VAR5\
BACKUPTOFILE
IMPORTFILE
Import kod HEX daripada fail binari ke dalam editor.
IMPORTFILE=\catalog\filename.bin
IMPORTHEX
Mengimport kod HEX ke dalam editor.
Contoh: mengimport segmen kod 128-bait ke dalam editor.
IMPORTHEX=030407100000000000000006670000000802001E4F454D2020202020202020202020202000000B4053465031302D535220202020202020204120202003520091001A000058473936535230313020202020202020303830393236202068F0031200001111A8DD05AA642FAA6F5A64DAF3285A9D000000000000000000F05E482F
Mengimport kod ke dalam editor dengan menyimpulkan variabel buffer.
$VAR1={00;43}
$VAR2={44;0F}
$VAR3={54;2B}
IMPORTHEX=$VAR1$VAR2$VAR3
INCREMENT
Meningkatkan nilai variabel yang mengandungi perwakilan hexadecimal kod supaya nombor di hujung perwakilan teksnya meningkat satu.
Contohnya, perwakilan teks variabel SN129YY00201 telah ditukar kepada SN129YY00202.
Sekiranya nol melebihi bahagian nombor, aplikasi cuba untuk mengekalkan panjang string asal apabila nombor yang ditingkatkan memerlukan digit tambahan, menukar nilai ke kiri. Oleh itu, nilai SN129YY00999 telah ditukar kepada 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
Lengkapkan kawasan spesifik vendor dalam editor dengan nol.
COUNTER
Script iterasi counter.
Letakkan perintah ini pada permulaan fail skrip yang berjalan dalam loop. Jumlah iterasi semasa boleh didapati melalui variabel $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 ...
membandingkan nilai Gunakan konstrukt ini untuk membandingkan A dan B dan menjalankan perintah berikut THEN jika keadaan yang dinyatakan adalah benar.
// 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
Kembali lagi skrip ini. Letakkan perintah ini di hujung fail skrip untuk memberitahu aplikasi untuk menjalankan prosedur lagi. Perintah UNLOOP membatalkan LOOP. Gunakan keadaan untuk keluar dari lubang dan mengelakkan pengulangan yang tidak berkesudahan.
Contoh dengan syarat.
COUNTER
...
R1A000007F
...
// Repeat the script until 10 iterations have completed
IF $COUNTER < 10 THEN LOOP
Jika skrip memasukkan lubang yang tidak berkesudahan, hentikan ia menggunakan perintah terganggu global dalam <Tools - Processes Interrupt>.
STRTOHEX
Menukar teks mengikut operator kepada string HEX.
$VAR9=STRTOHEX QSFP28-SR4
MSGBOX $VAR9
HEXTOSTR
Menukar string HEX mengikut operator kepada teks.
$VAR9=HEXTOSTR 5153465032382D535234202020202020
MSGBOX $VAR9
PADRIGHTHEX
Letakkan nilai hexadecimal dalam $VAR1 di sebelah kanan dengan aksara yang kodnya YY sehingga panjang perwakilan teks mencapai XX.
Format Perintah:
PADRIGHTHEX XX YY $VAR1
XXnombor dekimal yang menentukan panjang perwakilan teks string HEX;YYkod HEX watak yang digunakan untuk melampirkan tali ke panjang yang diperlukan;$VAR1variabel yang mengandungi HEX string untuk ditukar.
// 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
Perintah ini berguna apabila menugaskan teks kepada variabel dan menukarnya kepada string HEX panjang tertentu.
PADLEFTHEX
Ia berfungsi seperti PADRIGHTHEX. Masukkan nilai hexadecimal dalam $VAR1 di sebelah kiri dengan aksara yang kodnya YY sehingga panjang perwakilan teks mencapai XX.
SAVECODEDIR
Tetapkan laluan untuk menyimpan fail kod secara automatik tanpa kotak dialog.
Contoh: menetapkan laluan output kod ke direktori yang dinamakan selepas nombor siri dalam kod:
$VAR4=HEXTOSTR {44;0F}
SAVECODEDIR=C:\Users\DemoUser\Desktop\Codes\$VAR4
SAVEFILE
Simpan kod untuk fail pada laluan yang ditetapkan oleh SAVECODEDIR. Aplikasi ini secara automatik mencipta nama fail mengikut jenis modul dan halaman yang dipilih.
$VAR4=HEXTOSTR {44;0F}
SAVECODEDIR=C:\Users\DemoUser\Desktop\Codes\$VAR4
SAVEFILE
SIGNATURE
Berjalankan generator dengan parameter preset.
Ciri ini memerlukan lesen generator yang diperpanjang dalam aplikasi, yang tidak termasuk dalam pakej standard.
Pengendali api luar
APIURL
Tetapkan URL yang digunakan untuk memanggil operator API luaran.
APIURL=http://localhost/example/api.php
APICALL
Panggil operator API luaran. Ini sama dengan mengklik butang API dalam tetingkap aplikasi utama.
Format permintaan POST untuk panggilan kepada APIURL
POST Fields: code=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&module_type=1&table=A0&offset=00
codeKod: 256-karakter string (HEX, bahagian atas);module_typeJenis modul (0 — GBIC), 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP);tablealamat jadual (HEX, bahagian atas; contohnya: A0; A2);offsetJadual offset (HEX, atas; contohnya: 00, 80).
Pelayan perlu mengembalikan string JSON:
{"status":1,"script":"R1A000007F\r\nW1A000007F{00;7F}\r\n","message":"","code":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","module_type":"1","table":"A0","offset":"00"}
Jawapan pelayan mesti mengandungi parameter berikut:
statusstatus pemprosesan: 1 — mengimport dan menjalankan skrip; 0—menunjukkan mesej tanpa mengimport kod;scriptteks skrip untuk dijalankan selepas mengimport kod; meninggalkan kosong jika tiada skrip ditentukan;messagemengembalikan mesej yang dipaparkan apabila status = 0;codekod yang dikembalikan: string watak 256 (HEX, bahagian atas);module_typeJenis modul (0 — GBIC), 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP);tablealamat jadual (HEX, bahagian atas; contohnya: A0; A2);offsetJadual offset (HEX, atas; contohnya: 00, 80).
Operasi Aritmetik
Pemproses skrip menyokong penambahan, subtraksi, pengulangan dan pembahagian melalui MATH.
Format Perintah:
MATH Value1 %Operator Value2
Pengendali aritmetik yang disokong:
+· menambah-• Subtraksi yang*• pengambilan bilangan;/Pembahagian:
COUNTER
$VAR0=MATH 10 - $COUNTER
ECHO $VAR0
// Repeat the script while the condition is true
IF $VAR0 > 0 THEN LOOP
fail pengguna
Perintah untuk bekerja dengan fail pengguna.
USERFILEPATH
Setkan laluan fail pengguna.
USERFILEPATH=C:\Users\User\Desktop\user-file.txt
GETUSERFILESTRING
Baca baris yang dinyatakan daripada fail pengguna.
GETUSERFILESTRING 10
SAVETOUSERFILE
Menyimpan data ke dalam fail pengguna.
Contoh yang:
// 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
Nilai ini mengandungi bilangan baris dalam fail pengguna.
// 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