การเขียนด้วยสคริปต์
สคริปต์เป็นกลไกการใช้งานพิเศษสําหรับการส่งและประมวลผลคําแนะนําอย่างต่อเนื่อง พวกเขาสามารถตั้งค่าการตั้งค่าแผงโปรแกรมแบบพกพาอ่านและเขียนหน่วยความจําแบบพกพกพาและดําเนินการอื่น ๆ
ใช้สคริปต์เมื่อผู้รับต้องการขั้นตอนการเขียนโปรแกรมที่แตกต่างจากมาตรฐาน MSA และต้องการคําแนะนําพิเศษเพื่อบันทึกการเปลี่ยนแปลงหน่วยความจําอย่างประสบความสําเร็จ สคริปต์ยังสามารถอัตโนมัติการเขียนโปรแกรมที่ซ้ํากันของพื้นที่หน่วยความจําแบบพกพาที่แตกต่างกันด้วยส่วนร่วมของผู้ประกอบการน้อยที่สุด
ฉันจะใช้ script ได้อย่างไร
- เปิดเมนู การควบคุม - เขียนด้วยสคริปต์ - เลือกไฟล์สคริฟต์ เพื่อระบุเส้นทางไฟล์สคริปต์
- ตรวจสอบให้แน่ใจว่าตัวแก้ไขมีรหัสที่ถูกต้องหากสคริปต์ใช้ข้อมูลตัวแก้ไขในระหว่างการดําเนินการ
- คลิกที่ปุ่มการเขียนหน่วยความจําแบบพกพาเพื่อเรียกใช้สคริปต์
เมื่อเรียกใช้สคริปต์แอพลิเคชันจะลบการตั้งค่าพื้นที่หน่วยความจําที่เลือกในปัจจุบัน พื้นที่อ่านและเขียนจะต้องระบุไว้ในคําสั่งสคริปต์
โปรดทราบว่าซอฟต์แวร์ไม่ตรวจสอบว่าการเขียนได้ประสบความสําเร็จหลังจากที่สคริปต์เสร็จสิ้น
ฉันจะทําความสะอาดสคริปต์ที่เลือกอย่างไร
ไปยังเมนู การควบคุม - การเขียนด้วยสคริปต์ - Reset script ลบสคริปต์ที่เลือกและกลับไปที่การเขียนมาตรฐาน
ฉันจะสร้าง script ได้อย่างไร
สคริปต์คําสั่ง syntax อยู่ในฐานะของโปรโตคอลคําสั่ง SFPTotal
ตัวอย่าง:
// 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
สร้างไฟล์ข้อความและป้อนคําแนะนําหนึ่งในเส้น เก็บไฟล์สคริปต์เพื่อใช้ขั้นตอนการเขียนโปรแกรมนี้ในแอพ
สกรูคําสั่งเพิ่มเติม
คําสั่งเพิ่มเติมต่อไปนี้จะถูกประมวลผลโดยการใช้งาน
PAUSE
การดําเนินการสคริปต์หยุด ระยะเวลาเริ่มต้นคือ 100 ms.
ตัวเลือกพารามิเตอร์ตั้งค่าระยะเวลาหยุดใน milliseconds
PAUSE
Delay 100ms
PAUSE=2000
Delay 2000ms
SETCHECKSUM
คัดลอกค่าตรวจสอบ
SETVAL
ตั้งเซลล์แก้ไขใน offset XX เพื่อให้มีค่า YY แสดงค่าพารามิเตอร์ในรูปแบบ HEX ด้านบน
พารามิเตอร์ offset จะยอมรับค่าจาก 00 ไปยัง 7F
SETVAL 7F 03
{00;7F}
การแทนที่ macro {XX;YY} ใช้ภายในคําสั่งอื่น ๆ เพื่อใส่ชุดรหัสจากตัวแก้ไข ในระหว่างการดําเนินการสคริปต์ macro จะถูกแทนที่โดยอัตโนมัติด้วยข้อมูลแก้ไขปัจจุบันเริ่มต้นที่บิต XX และขยาย YY บิต
หมายเหตุว่า YY คะแนนพารามิเตอร์ 00 ใน HEXหมายความว่าไบต์ 1 จะถูกแทนที่ในขณะที่ค่าของ 7F ใน HEXหมายความว่าไบต์ 128 จะถูกแทนที่ Set YY to the segment length in bytes minus one, ระบุไว้ใน hexadecimal.
ตัวอย่าง: เขียนส่วน 128-byte ไปยังหน้า A2h ที่ offset 80h.
w2A200807F{00;7F}
ตัวอย่าง: เขียน 96-byte DDM ระยะทาง segment ไปยังหน้า A2h ที่ offset 00h, ต่อไปนี้เป็นอ่าน.
W2A200005F{00;5F}
ตัวอย่าง: การกําหนดตัวแปรของ 16-bit code segment ที่ offset 0x44 ซึ่งมีหมายเลขซีรีส์
$VAR2={44;0F}
$VAR1
แลกเปลี่ยน Buffer $VAR1 ใช้ตัวแปร buffer เพื่อจัดเก็บส่วนโค้ดจากตัวแก้ไขและใส่เนื้อหาของพวกเขาในระหว่างการดําเนินการสคริปต์
แอปพลิเคชันรองรับ 10 buffer variables, $VAR0–$VAR9.
$VAR1={00;43}
$VAR2={44;0F}
$VAR3={54;2B}
$VAR4=002AFE
$VAR5=4F
$YYYY
ใส่ปีปัจจุบันลงในคําสั่ง
$MM
ใส่เดือนปัจจุบันลงในคําสั่ง
$DD
ใส่วันที่ปัจจุบันลงในคําสั่ง
BACKUPTOFILE
เริ่มต้นการสํารองข้อมูลสําหรับประเภทโมดูลที่เลือกในการตั้งค่าแอพ แอพลิเคชันอ่านหน้าที่มีอยู่อย่างต่อเนื่องและบันทึกข้อมูลไปยังไฟล์ คําสั่งนี้เท่ากับคําแนะนําฟังก์ชั่นจากเมนูแอพลิเคชัน
BACKUPDIR
ระบุแผนที่การซ่อมแซม พารามิเตอร์เพิ่มเติมสามารถใช้ในการสร้างไดเรกทอรีที่มีชื่อเฉพาะ
ตัวอย่าง: สร้างตารางการรับรองพร้อมวันที่ในชื่อของมัน
$VAR5=SOMETEXT
BACKUPDIR=\$YYYY-$MM-$DD_$VAR5\
BACKUPTOFILE
IMPORTFILE
นําเข้ารหัส HEX จากไฟล์ไบนารีไปยังตัวแก้ไข
IMPORTFILE=\catalog\filename.bin
IMPORTHEX
นําเข้ารหัส HEX ในตัวแก้ไข
ตัวอย่าง: นําเข้าชุดรหัส 128-bit ในตัวแก้ไข
IMPORTHEX=030407100000000000000006670000000802001E4F454D2020202020202020202020202000000B4053465031302D535220202020202020204120202003520091001A000058473936535230313020202020202020303830393236202068F0031200001111A8DD05AA642FAA6F5A64DAF3285A9D000000000000000000F05E482F
นําเข้ารหัสไปยังตัวแก้ไขโดยการผสมผสานตัวเปลี่ยนแปลง buffer
$VAR1={00;43}
$VAR2={44;0F}
$VAR3={54;2B}
IMPORTHEX=$VAR1$VAR2$VAR3
INCREMENT
เพิ่มมูลค่าของตัวแปรที่มีการแสดงผล hexadecimal ของรหัสเพื่อให้หมายเลขที่ปลายของการแสดงผลข้อความของมันเพิ่มขึ้นโดยหนึ่ง
ตัวอย่างเช่นการแสดงข้อความของตัวแปร SN129YY00201 แปลงเป็น SN129YY00202.
หากเซอโรตล่อนส่วนดิจิตอลแอพลิเคชันพยายามที่จะรักษาความยาวเส้นดั้งเดิมเมื่อหมายเลขที่เพิ่มต้องการดิจิทัลเพิ่มเติมและเปลี่ยนค่าไปยังด้านซ้าย ดังนั้นมูลค่า SN129YY00999 แปลงเป็น 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
ปลอกพื้นที่เฉพาะผู้จําหน่ายในตัวแก้ไขด้วยเซลล์
COUNTER
คู่มือการอธิบายของ Script
โพสต์คําสั่งนี้ในตอนเริ่มต้นของไฟล์สคริปต์ที่ทํางานในรู ค่าคํานวณ iteration อัตราปัจจุบันสามารถใช้ได้ผ่านการเปลี่ยนแปลง $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 ...
การเปรียบเทียบค่า ใช้โครงสร้างนี้เพื่อเปรียบเทียบ A และ B และดําเนินการคําสั่งตาม THEN หากเงื่อนไขที่ระบุเป็นจริง
// 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
ลองทําซ้ําการเขียน ใส่คําสั่งนี้ในปลายไฟล์สคริปต์เพื่อให้คําแนะนําให้แอพพลิเคชันที่จะดําเนินการอีกครั้ง คู่มือ UNLOOP ปิด LOOP ใช้เงื่อนไขเพื่อออกจากวงกลมและหลีกเลี่ยงการทําซ้ําได้ไม่สิ้นสุด
ตัวอย่างที่มีเงื่อนไข
COUNTER
...
R1A000007F
...
// Repeat the script until 10 iterations have completed
IF $COUNTER < 10 THEN LOOP
หากสคริปต์เข้าสู่วงกลมที่ไม่มีที่สิ้นสุดให้หยุดใช้คําสั่งการหยุดทั่วโลกใน <เครื่องมือ - กระบวนการหยุด>
STRTOHEX
แปลงข้อความตามผู้ประกอบการเป็น HEX string
$VAR9=STRTOHEX QSFP28-SR4
MSGBOX $VAR9
HEXTOSTR
แปลงเส้น HEX ตามผู้ประกอบการเป็นข้อความ
$VAR9=HEXTOSTR 5153465032382D535234202020202020
MSGBOX $VAR9
PADRIGHTHEX
ป้ายค่า hexadecimal ใน $VAR1 บนด้านขวากับตัวอักษรที่มีรหัส YY จนกระทั่งความยาวของการแสดงข้อความของมันถึง XX
รูปแบบคําสั่ง:
PADRIGHTHEX XX YY $VAR1
XXหมายเลขสิบที่ระบุความยาวของการแสดงข้อความของเส้น HEXYYรหัส HEX ของตัวอักษรที่ใช้ในการติดเส้นไปยังความยาวที่ต้องการ$VAR1เปลี่ยนที่มี HEX string เพื่อแปลง
// 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
คําสั่งนี้มีประโยชน์เมื่อกําหนดข้อความเป็นตัวเปลี่ยนแปลงและแปลงมันเป็นเส้น HEX ของความยาวที่เฉพาะเจาะจง
PADLEFTHEX
ทํางานเหมือน PADRIGHTHEX แปลงค่า hexadecimal ใน $VAR1 ด้านซ้ายด้วยตัวอักษรที่มีรหัส YY จนกระทั่งความยาวของการแสดงข้อความของมันถึง XX
SAVECODEDIR
กําหนดเส้นทางเพื่อบันทึกไฟล์รหัสโดยอัตโนมัติโดยไม่มีกล่องโต้ตอบ
ตัวอย่าง: การตั้งค่าเส้นทางออกรหัสไปยังไดเรกทอรีที่เรียกว่าหลังจากหมายเลขชุดในรหัส:
$VAR4=HEXTOSTR {44;0F}
SAVECODEDIR=C:\Users\DemoUser\Desktop\Codes\$VAR4
SAVEFILE
เก็บรหัสไปยังไฟล์ในเส้นทางที่กําหนดโดย SAVECODEDIR แอพลิเคชันสร้างชื่อไฟล์โดยอัตโนมัติตามประเภทโมดูลที่เลือกและหน้า
$VAR4=HEXTOSTR {44;0F}
SAVECODEDIR=C:\Users\DemoUser\Desktop\Codes\$VAR4
SAVEFILE
SIGNATURE
ดําเนินการเครื่องกําเนิดไฟฟ้าด้วยพารามิเตอร์ที่กําหนดไว้ล่วงหน้า
คุณสมบัตินี้ต้องมีใบอนุญาตผู้ผลิตที่ขยายในแอพซึ่งไม่ได้รวมอยู่ในแพคเกจมาตรฐาน
การจัดการไฟภายนอก
APIURL
กําหนด URL ที่ใช้เพื่อเรียกผู้จัดการ API ภายนอก
APIURL=http://localhost/example/api.php
APICALL
โทรหาผู้จัดการ API ภายนอก นี่คือการคลิกที่ปุ่ม API ในหน้าต่างแอพหลัก
โพสต์แบบฟอร์มคําขอสําหรับโทร APIURL
POST Fields: code=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&module_type=1&table=A0&offset=00
codeรหัส: 256-ตัวละคร string (HEX, ด้านบน)module_typeประเภทโมดูล (0 — GBIC, 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP);tableที่อยู่ตาราง (HEX, ด้านบน; ตัวอย่างเช่น: A0, A2);offsetตาราง Offset (HEX, ด้านบน; ตัวอย่างเช่น: 00, 80).
เซิร์ฟเวอร์จะต้องส่งลวด JSON:
{"status":1,"script":"R1A000007F\r\nW1A000007F{00;7F}\r\n","message":"","code":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","module_type":"1","table":"A0","offset":"00"}
ความตอบสนองเซิร์ฟเวอร์จะต้องมีพารามิเตอร์ต่อไปนี้:
statusสถานะการประมวลผล: 1 — นําเข้าและดําเนินการสคริปต์; 0 - แสดงข้อความโดยไม่ต้องนําเข้ารหัสscriptสคริปต์ข้อความที่จะดําเนินการหลังจากการนําเข้ารหัส; ปล่อยเปล่าหากไม่มีสคริปท์ที่ระบุmessageข้อความที่ส่งกลับแสดงเมื่อสถานะ = 0codeรหัสกลับ: ลวดตัวละคร 256 (HEX, ด้านบน)module_typeประเภทโมดูล (0 — GBIC, 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP);tableที่อยู่ตาราง (HEX, ด้านบน; ตัวอย่างเช่น: A0, A2);offsetตาราง Offset (HEX, ด้านบน; ตัวอย่างเช่น: 00, 80).
การดําเนินการ Arithmetic
เครื่องประมวลผลสคริปต์สนับสนุนการเพิ่มซ้ําการเพิ่มและแบ่งผ่าน MATH.
รูปแบบคําสั่ง:
MATH Value1 %Operator Value2
ผู้ประกอบการ arithmetic ที่ได้รับการสนับสนุน:
+- การเพิ่ม-- การยึดซึม*- การเพิ่มขึ้น/- การแบ่ง
COUNTER
$VAR0=MATH 10 - $COUNTER
ECHO $VAR0
// Repeat the script while the condition is true
IF $VAR0 > 0 THEN LOOP
ไฟล์ผู้ใช้
คําสั่งในการทํางานกับไฟล์ผู้ใช้
USERFILEPATH
การตั้งค่าเส้นทางไฟล์ผู้ใช้
USERFILEPATH=C:\Users\User\Desktop\user-file.txt
GETUSERFILESTRING
อ่านเส้นที่ระบุจากไฟล์ผู้ใช้
GETUSERFILESTRING 10
SAVETOUSERFILE
บันทึกข้อมูลไปยังไฟล์ผู้ใช้
ตัวอย่าง:
// 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
หมายเลขนี้ประกอบด้วยจํานวนเส้นในไฟล์ผู้ใช้
// 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