लेखन के साथ लिखना
स्क्रिप्ट निर्देशों को लगातार भेजने और संसाधित करने के लिए एक विशेष अनुप्रयोग तंत्र हैं। वे ट्रांससेवर प्रोग्रामिंग बोर्ड सेटिंग्स सेट कर सकते हैं, ट्रांससेसर स्मृति को पढ़ सकते हैं और लिख सकते हैं, और अन्य कार्यों को पूरा कर सकते हैं।
स्क्रिप्ट का उपयोग करें जब एक ट्रांससेवर को प्रोग्रामिंग प्रक्रिया की आवश्यकता होती है जो MSA मानक से अलग होती है और स्मृति परिवर्तनों को सफलतापूर्वक बचाने के लिए विशेष निर्देशों की एक श्रृंखला की आवश्यकता होती हैं। स्क्रिप्ट विभिन्न ट्रांससेवर स्मृति क्षेत्रों के दोहराए गए प्रोग्रामिंग को कम ऑपरेटर भागीदारी के साथ स्वचालित कर सकते हैं।
मैं एक स्क्रिप्ट का उपयोग कैसे करूं?
- मेनू खोलें नियंत्रण - स्क्रिप्ट का उपयोग करके लिखें - एक स्क्रिट फ़ाइल का चयन करें स्क्रिप्ट फ़ाइल मार्ग निर्दिष्ट करने के लिए;
- सुनिश्चित करें कि संपादक में सही कोड होता है यदि स्क्रिप्ट निष्पादन के दौरान संपादक डेटा का उपयोग करता है;
- स्क्रिप्ट को चलाने के लिए ट्रांससेवर मेमोरी लिखने के बटन पर क्लिक करें।
एक स्क्रिप्ट चलाते समय, एप्लिकेशन वर्तमान में चुने गए स्मृति क्षेत्र सेटिंग्स को अनदेखा करता है। पढ़ने और लिखने के क्षेत्रों को स्क्रिप्ट कमांड में निर्दिष्ट किया जाना चाहिए।
कृपया ध्यान दें कि सॉफ्टवेयर यह पुष्टि नहीं करता है कि एक स्क्रिप्ट समाप्त होने के बाद लिखने में सफलता मिली है या नहीं।
मैं चुने हुए स्क्रिप्ट को कैसे साफ कर सकता हूं?
मेनू पर जाएं नियंत्रण - एक स्क्रिप्ट का उपयोग करके लिखें - पुन: स्क्रिट करें चुने हुए स्क्रिप्ट को हटा दें और मानक लेखन में वापस जाएं।
मैं एक स्क्रिप्ट कैसे बनाता हूं?
स्क्रिप्ट कमांड सिंटाक्स 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 है।
एक वैकल्पिक पैरामीटर मिलीसेकंड में ब्रेक की अवधि निर्धारित करता है।
PAUSE
Delay 100ms
PAUSE=2000
Delay 2000ms
SETCHECKSUM
चेकअप को पुनः गणना करें।
SETVAL
संपादक कोशिका को ऑफसेट XX पर YY के मूल्य के लिए सेट करें। ऊपर के HEX प्रारूप में पैरामीटर मूल्य निर्दिष्ट करें।
ऑफ़सेट पैरामीटर 00 से 7F तक के मूल्यों को स्वीकार करता है।
SETVAL 7F 03
{00;7F}
मैक्रो प्रतिस्थापन {XX;YY} अन्य कमांडों के अंदर का उपयोग संपादक से एक कोड सेगमेंट दर्ज करने के लिए किया जाता है। स्क्रिप्ट निष्पादन के दौरान, मैक्रो को स्वचालित रूप से वर्तमान संपादक डेटा के साथ प्रतिस्थापित किया जाता है जो बीट XX से शुरू होता है और YY बीट का विस्तार करता है।
ध्यान दें कि एक YY पैरामीटर मूल्य 00 HEX में 1 बाइट को बदल दिया जाता है, जबकि एक मूल्य 7F HEX में, 128 बाइट्स को बदल दिया जाता है। YY सेगमेंट लंबाई में बाइट्स minus एक में सेट करें, जो hexadecimal में व्यक्त किया जाता है।
उदाहरण: 128-बाइट सेगमेंट को A2h पर ऑफसेट 80h में लिखें।
w2A200807F{00;7F}
उदाहरण: 96-बाइट DDM सीमा सेगमेंट को पृष्ठ A2h पर ऑफसेट 00h में लिखें, जिसके बाद एक पढ़ाई होगी।
W2A200005F{00;5F}
उदाहरण: 16-बाइट कोड सेगमेंट को एक चर के रूप में आवंटित करने के लिए, 0x44 offset पर जो श्रृंखला संख्या शामिल है।
$VAR2={44;0F}
$VAR1
बफर वेरिएबल $VAR1। संपादक से कोड सेगमेंट्स को संग्रहीत करने के लिए बफर वेरिएंट का उपयोग करें और स्क्रिप्ट निष्पादन के दौरान उनकी सामग्री दर्ज करें।
एप्लिकेशन 10 बफर वेरिएंट का समर्थन करता है, $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-बाइट कोड सेगमेंट का आयात करना।
IMPORTHEX=030407100000000000000006670000000802001E4F454D2020202020202020202020202000000B4053465031302D535220202020202020204120202003520091001A000058473936535230313020202020202020303830393236202068F0031200001111A8DD05AA642FAA6F5A64DAF3285A9D000000000000000000F05E482F
संपादक में कोड आयात करें, बफर वेरिएंट को संकुचित करके।
$VAR1={00;43}
$VAR2={44;0F}
$VAR3={54;2B}
IMPORTHEX=$VAR1$VAR2$VAR3
INCREMENT
कोड का एक हेक्साडेकमल प्रतिनिधित्व रखने वाले एक चर के मूल्य को बढ़ाएं ताकि उसके पाठ प्रतिनिधित्व के अंत में संख्या एक से बढ़ जाए।
उदाहरण के लिए, परिवर्तक का पाठ प्रतिनिधित्व 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
स्क्रिप्ट इटेरेशन कंट्रोल
इस कमांड को एक स्क्रिप्ट फ़ाइल की शुरुआत में रखें जो एक लूप में चलता है। वर्तमान आयरेशन गिनती $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 की तुलना करने के लिए इस कंक्रीट का उपयोग करें और यदि निर्दिष्ट स्थिति सच है तो निम्नलिखित कमांड को निष्पादित करें।
// 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
यदि एक स्क्रिप्ट एक अंतहीन लूप में प्रवेश करता है, तो इसे <Tools - Interrupt Processes> में वैश्विक रुकावट कमांड का उपयोग करके रोकें।
STRTOHEX
ऑपरेटर के बाद पाठ को एक HEX श्रृंखला में परिवर्तित करें।
$VAR9=STRTOHEX QSFP28-SR4
MSGBOX $VAR9
HEXTOSTR
ऑपरेटर के बाद HEX श्रृंखला को पाठ में परिवर्तित करें।
$VAR9=HEXTOSTR 5153465032382D535234202020202020
MSGBOX $VAR9
PADRIGHTHEX
हाक्सएडीसीएम मूल्य को $VAR1 में सही पर उस चरित्र के साथ डालें जिसका कोड YY है जब तक कि इसका पाठ प्रतिनिधित्व की लंबाई XX तक नहीं पहुंचती है।
कमांड फॉर्मेट:
PADRIGHTHEX XX YY $VAR1
XXएक दशक संख्या जो HEX श्रृंखला के पाठ प्रतिनिधित्व की लंबाई निर्दिष्ट करती है;YYअक्षर का HEX कोड जिसे तार को आवश्यक लंबाई तक पैड करने के लिए इस्तेमाल किया जाता है;$VAR1परिवर्तक में परिवर्तित करने के लिए HEX श्रृंखला शामिल है।
// 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 के रूप में काम करता है। बाईं ओर $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 सेट करें।
APIURL=http://localhost/example/api.php
APICALL
बाहरी एपीआई ऑपरेटर को कॉल करें। यह मुख्य अनुप्रयोग विंडो में एपीआई बटन पर क्लिक करने के बराबर है।
APIURL के लिए कॉल के लिए POST अनुरोध प्रारूप
POST Fields: code=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&module_type=1&table=A0&offset=00
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टेबल ऑफसेट (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टेबल ऑफसेट (HEX, ऊपरी; उदाहरण के लिए: 00; 80)
Arithmetic ऑपरेशन
स्क्रिप्ट प्रोसेसर अतिरिक्त, सबट्रैक्शन, बहुल और विभाजन का समर्थन करता है MATH.
कमांड फॉर्मेट:
MATH Value1 %Operator Value2
सहायक एरिथ्मेटिक ऑपरेटर:
+अतिरिक्त;-Subtract के लिए;*बहुतायत के लिए;/विभाजन के लिए;
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