Skip ไปยัง บทความ

การเขียนด้วยสคริปต์

สคริปต์เป็นกลไกการใช้งานพิเศษสําหรับการส่งและประมวลผลคําแนะนําอย่างต่อเนื่อง พวกเขาสามารถตั้งค่าการตั้งค่าแผงโปรแกรมแบบพกพาอ่านและเขียนหน่วยความจําแบบพกพกพาและดําเนินการอื่น ๆ

ใช้สคริปต์เมื่อผู้รับต้องการขั้นตอนการเขียนโปรแกรมที่แตกต่างจากมาตรฐาน MSA และต้องการคําแนะนําพิเศษเพื่อบันทึกการเปลี่ยนแปลงหน่วยความจําอย่างประสบความสําเร็จ สคริปต์ยังสามารถอัตโนมัติการเขียนโปรแกรมที่ซ้ํากันของพื้นที่หน่วยความจําแบบพกพาที่แตกต่างกันด้วยส่วนร่วมของผู้ประกอบการน้อยที่สุด


ฉันจะใช้ script ได้อย่างไร

  1. เปิดเมนู การควบคุม - เขียนด้วยสคริปต์ - เลือกไฟล์สคริฟต์ เพื่อระบุเส้นทางไฟล์สคริปต์
  2. ตรวจสอบให้แน่ใจว่าตัวแก้ไขมีรหัสที่ถูกต้องหากสคริปต์ใช้ข้อมูลตัวแก้ไขในระหว่างการดําเนินการ
  3. คลิกที่ปุ่มการเขียนหน่วยความจําแบบพกพาเพื่อเรียกใช้สคริปต์

เมื่อเรียกใช้สคริปต์แอพลิเคชันจะลบการตั้งค่าพื้นที่หน่วยความจําที่เลือกในปัจจุบัน พื้นที่อ่านและเขียนจะต้องระบุไว้ในคําสั่งสคริปต์

โปรดทราบว่าซอฟต์แวร์ไม่ตรวจสอบว่าการเขียนได้ประสบความสําเร็จหลังจากที่สคริปต์เสร็จสิ้น


ฉันจะทําความสะอาดสคริปต์ที่เลือกอย่างไร

ไปยังเมนู การควบคุม - การเขียนด้วยสคริปต์ - 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 หมายเลขสิบที่ระบุความยาวของการแสดงข้อความของเส้น HEX
  • YY รหัส 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 ข้อความที่ส่งกลับแสดงเมื่อสถานะ = 0
  • code รหัสกลับ: ลวดตัวละคร 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
ปรับปรุง: