Yazıya kaydırın

Yazılar ile yazmak

Scriptler, talimatları sırasıyla göndermek ve işlemek için özel bir uygulama mekanizmasıdır. Transceiver programlama tablosu ayarlarını ayarlayabilir, transceiver hafızasını okuyabilir ve yazabilir ve diğer işlemleri yapabilirler.

Bir geçici, MSA standartlarından farklı bir programlama prosedürü gerektirdiğinde ve hafıza değişikliklerini başarıyla kaydetmek için özel talimatların bir dizi gerektirir. Scriptler ayrıca, operatörün en az katılımı ile farklı geçici hafıza alanlarının tekrarlanan programlanmasını otomatik olarak yapabilirler.


Bir senaryo nasıl kullanılır?

  1. Menü açın Kontrol - Bir senaryo kullanarak yazın - Bir senaryon dosyasını seçin Script dosya yolu belirlemek için;
  2. Editörün düzgün kodunu içerdiğinden emin olun, eğer senaryo çalıştırma sırasında editör verilerini kullanırsa;
  3. Script'i çalıştırmak için Transceiver Memory yazma düğmesine tıklayın.

Bir senaryo çalıştırırken, uygulama şu anda seçilen hafıza alanı ayarlarını görmezden gelir. Okuma ve yazma alanları, senaryo komutlarında belirtilmelidir.

Lütfen yazılımın bir senaryo bittikten sonra yazmanın başarılı olup olmadığını kontrol etmediğini unutmayın.


Seçilen senaryoyu nasıl açıklayabilirim?

Menüye gidin Kontrol - Bir senaryo kullanarak yazma - Reset script Seçilen senaryoyu silin ve standart yazıya geri dönün.


Bir senaryo nasıl oluşturulur?

Script komut syntax, SFPTotal komut protokolüne dayanmaktadır.

Örnek:

// 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

Bir metin dosyası oluşturun ve satır başına bir talimat girin. Bu programlama prosedürünü uygulamada kullanmak için senaryo dosyasını kaydedin.


Ek script komutları

Aşağıdaki ek komutlar başvuru tarafından işlenir.

PAUSE

Script performansını durdurmak. İndirimli durak 100 ms.

Seçmeli bir parametre, duraklama süresini millisekonda ayarlar.

PAUSE
Delay 100ms
PAUSE=2000
Delay 2000ms


SETCHECKSUM

Kontrolü yeniden hesaplayın.


SETVAL

Editör hücresini YY değerine offset XX'de ayarlayın. Yukarıdaki parametrelerin değerlerini HEX biçiminde belirtin.

Offset parametresi 00'dan 7F'ye kadar değerleri kabul eder.

SETVAL 7F 03


{00;7F}

Makro Değişimi {XX;YY} Diğer komutların içine, editörden bir kod segmentini girmek için kullanılır. Senaryo çalıştırma sırasında, makro otomatik olarak XX byte başlar ve YY byte uzatır.

YY parametrelerinin değerinin 00 HEX'da, 1 byte değiştirildiği anlamına gelir. 7F HEX'te 128 byte değiştirildiği anlamına gelir. YY'yi segment uzunluğuna, hexadecimal olarak ifade edilen byte minus birinde ayarlayın.

Örnek: 128-byte segmentini 80h'de A2h sayfasına yazın.

w2A200807F{00;7F}

Örnek: A2h sayfasında 00h ofsetine 96 baytlık bir DDM eşik segmenti yazılması ve ardından okuma yapılması.

W2A200005F{00;5F}

Örnek: seri numarasını içeren ve 0x44 ofsetinde bulunan 16 baytlık kod segmentinin bir değişkene atanması.

$VAR2={44;0F}


$VAR1

Buffer değişkenleri $VAR1 Buffer değişkenleri kullanarak editörün kod segmentlerini kaydetmek ve senaryo çalıştırma sırasında içeriğini girin.

Uygulama 10 buffer değişkenleri, $VAR0–$VAR9 destekler.

$VAR1={00;43}
$VAR2={44;0F}
$VAR3={54;2B}
$VAR4=002AFE
$VAR5=4F


$YYYY

Geçen yılın komutuna girin.


$MM

Geçerli ayı komutun içine girin.


$DD

Şu anki gününü komutun içine koyun.


BACKUPTOFILE

Uygulama ayarlarında seçilen modül türü için bir yedekleme başlatın. Uygulama mevcut sayfaları sırasıyla okuyor ve verileri bir dosyaya kaydeder. Bu komut, uygulama menüsünden fonksiyonu çağırmakla eşdeğerdir.


BACKUPDIR

Yedekleme dizinini oluşturun. Belirli bir isimle bir dizin oluşturmak için ek parametreler kullanılabilir.

Örnek: Adında tarihi olan bir yedekleme dizinini oluşturun.

$VAR5=SOMETEXT
BACKUPDIR=\$YYYY-$MM-$DD_$VAR5\
BACKUPTOFILE


IMPORTFILE

Bir biner dosyadan editörün içine HEX kodu ithal edin.

IMPORTFILE=\catalog\filename.bin


IMPORTHEX

HEX kodu editörün içine girin.

Örnek: 128 baytlık bir kod segmentinin düzenleyiciye aktarılması.

IMPORTHEX=030407100000000000000006670000000802001E4F454D2020202020202020202020202000000B4053465031302D535220202020202020204120202003520091001A000058473936535230313020202020202020303830393236202068F0031200001111A8DD05AA642FAA6F5A64DAF3285A9D000000000000000000F05E482F

Buffer değişkenleri birleştirerek editörün içine kod ithal etmek.

$VAR1={00;43}
$VAR2={44;0F}
$VAR3={54;2B}
IMPORTHEX=$VAR1$VAR2$VAR3


INCREMENT

Kodun hexadecimal temsilini içeren bir değişkenin değerini arttırın, böylece metin temsilinin sonunda sayısı bir artış gösterir.

Örneğin, değişkenin metin temsilciliği SN129YY00201 dönüştürülmüştür SN129YY00202.

Eğer sıfır sayısal kısmı öne çıkıyorsa, uygulama, artan sayının bir ek sayıya ihtiyacı olduğunda orijinal çizgi uzunluğunu korumaya çalışır ve değerini sol tarafa taşıyar. Böylece değer SN129YY00999 dönüştürülmüştür 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

Editörde sunucu özel alanı sıfırlarla doldurun.


COUNTER

Script iteration counter ile ilgili bilgiler.

Bu komutu bir yuva içinde çalışan bir senaryo dosyasının başlangıcında yerleştirin. Mevcut iterasyon sayısı, $COUNTER değişkeniyle mevcuttur.

// 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 ...

Değerleri karşılaştırın. A ve B'yi karşılaştırmak için bu konektörü kullanın ve belirtilen koşul doğru ise, bu komutu takip edin.

// 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

Senaryoyu tekrarlayın. Bu komutu senaryo dosyasının sonunda yerleştirin ve uygulamanın prosedürü yeniden çalıştırmasını söyleyin. UNLOOP komutu LOOP'u iptal eder. Bir koşulu kullanın, yuva dışarı çıkın ve sonsuz tekrarlamaları önleyin.

Örnek bir koşulla.

COUNTER
...
R1A000007F
...
// Repeat the script until 10 iterations have completed
IF $COUNTER < 10 THEN LOOP

Eğer bir senaryo sonsuz bir yuva girerse, <Tools - Interrupt Processes>'daki küresel durdurma komutunu kullanarak durdurun.


STRTOHEX

Operatörün ardından metni bir HEX çubuğuna dönüştürün.

$VAR9=STRTOHEX QSFP28-SR4 
MSGBOX $VAR9


HEXTOSTR

Operatörün ardından HEX çubuğunu metin haline dönüştürün.

$VAR9=HEXTOSTR 5153465032382D535234202020202020
MSGBOX $VAR9


PADRIGHTHEX

Hexadecimal değerini $VAR1'ya doğru YY kodu olan karakterle yapıştırın, metin temsilinin uzunluğu XX'ye ulaşana kadar.

Komut Formatı:

PADRIGHTHEX XX YY $VAR1

  • XX HEX çubuğunun metin temsilciliğinin uzunluğunu belirleyen bir ondalık sayı;
  • YY HEX karakterin kodu, çizgiyi gerekli uzunluğa yapıştırmak için kullanılan;
  • $VAR1 dönüştürülmesi gereken HEX çubuğunu içeren değişken.
// 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

Bu komut, bir değişken için metni atarken ve belirli bir uzunluğun HEX çubuğuna dönüştürürken yararlıdır.


PADLEFTHEX

PADRIGHTHEX gibi çalışıyor. Sağdaki hexadecimal değeri, kodunun YY olduğu karakterle $VAR1'da yapıştırın, metin temsilinin uzunluğu XX'ye ulaşana kadar.


SAVECODEDIR

Bir kod dosyasını bir diyalog kutusu olmadan otomatik olarak kaydetmek için yolu ayarlayın.

Örnek: kodu çıkış yolu kodun seri sayısının ardından adlandırılan bir dizine ayarlayın:

$VAR4=HEXTOSTR {44;0F}
SAVECODEDIR=C:\Users\DemoUser\Desktop\Codes\$VAR4


SAVEFILE

Bir dosyaya SAVECODEDIR tarafından belirlenen yoldan kodu kaydedin. Uygulama, seçilen modül türüne ve sayfasına göre dosya adını otomatik olarak oluşturur.

$VAR4=HEXTOSTR {44;0F}
SAVECODEDIR=C:\Users\DemoUser\Desktop\Codes\$VAR4
SAVEFILE


SIGNATURE

Generatörü önceden ayarlanmış parametrelerle çalıştırın.

Bu özellik, uygulamada, standart paket içine dahil edilmemiş olan genişletilmiş bir jeneratör lisansı gerektirir.


Dış ateş işçileri

APIURL

Dış API işlemcisi olarak adlandırmak için kullanılan URL'yi ayarlayın.

APIURL=http://localhost/example/api.php

APICALL

Dış API işlemcisi ile iletişime geçin Bu, ana uygulama penceresinde API düğmesine tıklayarak eşittir.

APIURL'e çağrı için POST isteği biçimi

POST Fields: code=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&module_type=1&table=A0&offset=00
  • code kod: bir 256 karakter çubuğu (HEX, üst kısmı);
  • module_type Modül türü (0 — GBIC, 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP);
  • table Tablo adresi (HEX, üst; örneğin: A0; A2);
  • offset Tablo offset (HEX, üst; örneğin: 00, 80).

Sunucu bir JSON çubuğunu iade etmelidir:

{"status":1,"script":"R1A000007F\r\nW1A000007F{00;7F}\r\n","message":"","code":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","module_type":"1","table":"A0","offset":"00"}

Sunucu cevabı aşağıdaki parametreleri içermelidir:

  • status İşleme durumu: 1 - senaryo ithal etmek ve çalıştırmak; 0 — kod ithal etmeden bir mesaj göstermek;
  • script kod ithal ettikten sonra yürütülen senaryo metni; senaryo belirtilmediğinde boş bırakın;
  • message geri gönderilen mesaj, status=0 olduğunda görüntülenir;
  • code geri dönüş kodu: 256 karakter çubuğu (HEX, üst kısmı);
  • module_type Modül türü (0 — GBIC, 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP);
  • table Tablo adresi (HEX, üst; örneğin: A0; A2);
  • offset Tablo offset (HEX, üst; örneğin: 00, 80).


Aritmetik Operasyonlar

Script işlemcisi ekleme, altlayıcı, çoğaltma ve bölünme destekler. MATH.

Komut Formatı:

MATH Value1 %Operator Value2

Desteklenen aritmetik operatörler:

  • + • Ekleyin;
  • - Substrasyon için;
  • * • Çoğaltma;
  • / Bölünme için;
COUNTER
$VAR0=MATH 10 - $COUNTER
ECHO $VAR0
// Repeat the script while the condition is true
IF $VAR0 > 0 THEN LOOP


Kullanıcı Dosyası

Kullanıcı dosyası ile çalışmak için komutlar.

USERFILEPATH

Kullanıcı dosya yolu ayarlayın.

USERFILEPATH=C:\Users\User\Desktop\user-file.txt

GETUSERFILESTRING

Kullanıcı dosyasından belirtilen satırı okuyun.

GETUSERFILESTRING 10

SAVETOUSERFILE

Kullanıcı dosyasına veri kaydetme.

Örnek:

// 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

Bu değer, kullanıcı dosyasında satır sayısını içerir.

// 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
Güncelleştirme: