0xff Nedir
Sayılar
JavaScript’te tüm sayılar 64-bit formatında tutulur IEEE-754, buna “double precision” da denir.
Sayılar ile ilgili bilinenlerin üzerinden tekrar geçecek olunursa.
Sayıyı yazmanın birçok yolu
Diyelim ki 1 milyar yazmak istiyorsunuz. Şu şekilde:
Fakat gerçek hayatta bu kadar 0 yan yana yazdığınızda karışma şansı olduğundan bunun yerine veya gibi yazılabilmektedir. Aynı özellik JavaScript için de geçerli. Fakat bu defa sayıdaki 0 sayısı ile birlikte kullanılmalıdır:
Çok küçük bir sayıya bakıldığında. Örneğin 1 mikrosaniye ( saniyenin milyonda 1’i):
Aynı şekilde yardımcı olabilir. 0 ları yazmak yerine :
Şeklinde tanımlayabilirsiniz. gördüğünüz gibi 6 tane sıfır bulunmaktadır. Bundan dolayı şeklinde yazılabilir.
HexaDecimal, binary ve octal sayılar.
Hexadecimal sayılar JavaScript’te çoğunlukla renklerde, karakter çevrimlerinde ve birçok alanda kullanılmaktadır. Bundan dolayı gibi kolay yazım biçimine sahiptir. Diğer türlü sayı kullanılması gerekmektedir.
Örneğin:
Binary ve Octal sayı sistemleri ise çok nadir kullanılmaktadır fakat veya önekleri mevcuttur.
3 çeşit sayısal sistem desteklenmiştir. Diğer sayısal sistemler için ise kullanılmalıdır.
toString(taban)
verilen tabana göre karakter dizisini döndürür.
Örneğin:
ile arasında değişebilir. Varsayılanı dur.
Genel olarak kullanımı şu şekildedir:
16-tabanı hex renkler için, karakter çevrimleri için kullanılır. ve arası kullanılabilir.
2-tabanı bit tipindeki uygulamalar için kullanılır. Sadece veya 'dir değerlerini alabilir.
36-tabanı maximum bir basamak veya arası kullanılabilir. Bu da demek oluyor ki bütün latin alfabesi sayıları tanımlamak için kullnılabilir. Bu uzun sayısal bir değeri daha kısa bir değee çevirmek istendiğinde kullanılabilir. Örneğin URL kısaltma kolay bir şekilde 'nda ifade edilebilir.
İki nokta ile metod çağırımı
şeklinde yazım, hatalı bir yazım değildir. Eğer sayı üzerinden doğrudan metod çağırılmak isteniyor ise yazımı kullanılıri
Eğer tek nokta olursa: hata meydana gelir. Çünkü tek nokta olduğunda JavaScript ondalık sayı olarak algılar ve hata verir. Fakat bir tane daha nokta koyulursa JavaScript ondalık sayı olmadığını anladar ve doğrudan metoda gider.
Şu şekilde de yazılabilir: .
Yuvarlama
Sayılar ile yapılan önemli işlemlerden biri de yuvarlama işlemidir.
Yuvarlama işlemi için birçok dahili fonksiyon bulunmaktadır:
- Aşağı yuvarlar: , olur.
- Yukarı yuvarlar: , olur.
- En yakın tam sayıya yuvarlar: , ve olur.
- (Internet Explorer desteklemez)
- Ondalık bölümü siler: , olur.
Tablo şeklinde aşağıdaki gibi özetlenebilir:
Bu fonksiyonlar ondalık sayılar için önünüze gelebilecek tüm farklılıkları kapsar. Fakat ya ondalık bölümden n. basamağını yuvarlamak isterseniz?
Örneğin diye bir sayı olsun ve bunu 2 basamağa yuvarlamak istiyorsunuz gibi
Bunu yapmak için iki yol bulunmaktadır:
Çarp ve Böl.
Örneğin 2. basamaktan sonrasını yuvarlamak istiyorsanız bunu ile çarpıp sonra tekrar e bölerseniz istediğinizi elde etmiş olursunuz.
toFixed(n) kullanarak ondalık bölümde basamaktan sonrası için yuvarlama yapılabilir.
Bu gibi tam sayıya yakınlığına göre yukarıya veya aşağıya yuvarlar:
karakter dizisi döndürür. Eğer ondalık bölüm argümandan kısa ise sona eklenir.
Önüne artı koyarak veya fonksiyonunu kullaranak bunu sayıya çevirebilirsiniz: .
Küsürlü hesaplama
JavaScript sayıları IEEE-754 ifade edilir, bunlardan 52’si basamakları tutar. 11 tanesi ise ondalık bölümleri tutar ( tam sayılar için bu 11 bit sıfır olur) ve 1 bit işareti tutar.
Eğer sayı çok büyükse 64 bit alanın dışına çıkabilir bu da sonsuz döndürür.
Çok ta açık olmamakla birlikte çoğunlukla ola gelen bir problem ise küsür kaybıdır.
Aşağıdaki olayı test edin:
Doğru eğer ile 'nin toplamının olduğunu sanıyorsanız yanılıyorsunuz.
Peki değilse ne o zaman ?
Yok artık! Burada yanlış karşılaştırmanın sonuçlarını gördünüz. Düşünün bir e-ticaret sitesi yapıyorsunuz. Kullanıcı ve lik iki tane çiklet ekledi sepetine. Sonuçta toplam oldu. Sitenize gelen kişinin kafası karışacaktır.
Peki neden böyle bir şey oluyor?
Sayı hafızada binary formatta tutulur. Fakat ondalık bölümleri , gibi desimal sistemde çok basit gibi duran sayılar aslında bitmez bir binary forma sahiptir.
nedir? in bölümünden elde edilir. Onluk sistemde kolayca gösterilir. Fakat ondalık sistemde sonsuza kadar şeklinde devam eder.
Öyleyse 'a bölüm onluk sayılarda sorun yaratmazken 'e bölüm sorun yaratmaktadır. Aynı neden dolayı, bu defa binary sistem , aynı şekilde sonsuza kadar gider, 'nin katları ile bölüm tam sonuç verecektir. Fakat sonsuza kadar giden bir binary değer verir.
Aslında 0.1 veya 0.2 tam olarak saklanamaz, tıpkı 'ün tam olarak saklanamaması gibi.
IEEE-754 bunu en yakın değere yuvarlayarak çözmektedir. Bu kurallar bizim “küçük küsürleri” görmemizi engeller.
Örneğin:
Toplandığında ise “küsür kayıpları” üst üste eklenir. Bundan dolayı etmez.
Sadece JavaScript bu sorundan muzdarip değildir
Bu problemler diğer programlama dillerinde de mevcuttur.
PHP, Java, C, Perl, Ruby gibi diller de aslında aynı değeri verir. Çalıştıkları sistem aynı şekilde binary(ikili) sistemdir.
Bu problemden nasıl kurtulunur? Tabi bunun için bir kaç yöntem mevcuttur:
toFixed(n) metodu yardımı ile yuvarlayabilirsiniz:
Unutmayın her zaman karakter dizisi döndürür. 'dan sonra 2 basamak alır. Eğer e-ticaret sistemi üzerinde çalışıyorsanız bu gerçekten kullanışlıdır çünkü sonuç olmalıdır. Diğer hallerde önüne koyarak bunu sayıya çevirebilirsiniz:
Geçici olarak sayılar tam sayıya çevrilio sonradan geri döndürülebilir. Aşağıdaki gibi çalışır:
Aşağıdaki gibi çalışır ve sonrasında iki tam sayı hiçbir ondalık bölüm olmadan toplanır böylece küsürat kaybı ortadan kalkar.
Eğer e-ticaret sitesi üzerinde çalışıyorsanız. En radikal çözüm tüm küsüratları kuruş olarak kaydedip hiç küsürat kullanmamak olabilir. Fakat ya %30 indirip yapmak isterseniz? Pratikte bu kullanım çok nadirdir. Bundan dolayı yukarıdaki iki şekilde problem çözülebilir.
Aşağıdaki kodu çalıştırın:
Bu da küsürat kaybından meydana gelir. Bir sayıda 64 bit bulunmaktadır. 52 tanesi basamak tutmaktadır. Fakat bu durumda bu basamak yeterli değildir. Bundan dolayı en etkisiz basamak kaybolur.
JavaScript böyle bir durumda hata vermez. Belirli formata göre en iyi şekilde sayıyı yerleştirmeye çalışır. Fakat bu format yeterli büyüklükte değil.
Diğer bir komik olay ise ve 'ın varlığıdır.
İşaret bir bit ile tutulduğundan dolayı tüm sayıların ve lı değerleri bulunmaktadır.
Çoğu durumda bu ayrım soruna anlaşılamaz. Çünkü operatörler ikisine de aynı şekilde davranır.
Testler: isFinite ve isNaN
Hatırlarsanız iki tane özel sayı vardı.
- (ve ), bu sayı hersayıdan büyüktür, veya her sayıdan küçüktür.
- ise bir hata göstergesidir.
Her ikisi de tipine aittirler, fakat “normal” sayı değildirler. Bundan dolayı bunların kontrolü için özel fonksiyonlar bulunmaktadır.
argümanı sayıya çevirir ve sayı olup olmadığını kontrol eder.
Bu fonksiyona ihtiyacınız var mı? Sadece === NaN kullanılsa ? Malesef ihtiyaç var. kendi başına hiçbir şeye eşit değildir, hatta kendisine bile:
argümanı sayıya çevirir ve normal sayı ise değil ise döndürür:
Bazen karakterin sayı olup olmadığını kontrol için kullanılır:
Aklınızda bulunsun tüm boş veya sadece boşluk tuşu ile yazılan tüm değerler olarak kabul edilir 'de bu şekilde çalışır.
ile karşılaştırma
Özel bir dahili metod olan Object.is ile değerler gibi karşılaştırılabilir. İki durum için daha güvenlidir denebilir:
- ile çalışır: bu iyi
- ve farklıdır: ,neredeyse hiç kullanılmaz, ama yinede teknik olarak farklıdırlar.
Tüm durumlarda ile aynıdır.
Bu tür karşılaştırma genelde JavaScript içerisinde kullanılır. JavaScript içinde eğer algoritma iki değerin kesinlikle aynı olup olmadığını kontrol etmek istiyorsa kullanılır SameValue
parseInt ve parseFloat
veya kullanılarak sayıya çevirme sıkı bir çevirmedir. Eğer argüman sayı değilse hata verir:
Eğer başta veya sonda boşluk varsa bunlar görmezden gelinir.
Fakat gerçek hayatta değerler, veya gibi birim ekleri alabilir. Birçok ülkenin para birimi sona veya başa gelir. Bundan dolayı gibi değerler kullanıldığında önemli olan sayı bölümü olabilir.
ve tam olarak bunlar için kullanılır.
Karakter dizisinden sayıları “okuyabildikleri kadar” okurlar. Hata olduğu durumda sayıyı dönderir. tam sayı dönderirken küsüratlı sayı dönderir.
Eğer hiçbir basamak okunamazsa dönderirler.
in ikinci argümanı :
fonksiyonu isteğe bağlı olarak ikinci bir parametreye sahiptir. Bu sayı tabanını belirtir, böylece karakter olarak yazılmış hex sayılarını veya binary değerlerini de ayrıştırabilir.
Diğer matematik fonksiyonları
JavaScript dahilinde matematiksel fonksiyonların ve sabitlerin bulunduğu küçük bir kütüphane mevcuttur. Math
Birkaç örnek:
0 ile 1 (1 dahil değil) arasında rasgele sayı üretir.
- /
Verilen değerlerden en büyüğünü veya en küçüğünü döndüren fonksiyon
'in sünü döndürür.
math objesi daha birçok fonksiyon ve sabit barındırmaktadır. Trigonometri de bunlara dahildir. Math objesi dökümantasyonu
Özet
Büyük sayıları yazmak için:
- nin yanına kaç tane sıfır varsa onu yazın. Örneğin : = ün yanına tane 0 yaz demektir.
- den sonra yazılan negatif sayı ise kaç tane sıfır varsa önüne bir koy ve değeri bu sayıya böl demektir.
Farklı sayı sistemleri:
- Sayıları doğrudan hex olarak (), octal olarak() veya binary(ikili) () olarak yazmak mümkündür.
- 236` aralığında olmalıdır ( 2 ve 36 dahil)
- ise bir sayıyı karakter dizisine verilen tabanda yazmaya yarar.
ve gibi değerleri sayıya çevirme:
- hafif çevirimler için kullanılabilir, karakter görene kadar sayıları tutar ve karakter görürse tuttuklarını geri dönderir.
Ondalık bölüm:
- , , , veya kullanarak yuvarlayabilirsiniz.
- Küsüratlarda olan sorunları sayılarla çalışırken her zaman aklınızda tutmalısınız.
Daha fazla matematik fonksiyonu:
- Gerektiği zaman Math adresinden incelenebilir. Kütüphane çok küçük olsa da basit gereksinimleri karşılar.
ile birleştirilebilir boşluk kullanılmadan – olaylar kullanılmadığı sürece, yalnızca tamamlanana kadar blok çalışır (bkz. 3.23). kullanım: for(init_assignment;condition;step_assignment) bloğu – init_assignment ve step_assignment, karmaşık olmayan basit ifadelerdir geçerli: n0.val=4, sys2++, n0.val=sys2
4+3 geçersiz: n0.val=3+(sys24)-1 – (koşullar) soldan sağa doğru değerlendiren basit bir karmaşık olmayan boole karşılaştırmasıdır geçerli: (j0.val>75) geçersiz: (j0.val+1>75)
Örnek:
28 | wepo | 2 | Değeri/dizeyi EEPROM’a kaydedin – EEPROM geçerli adres aralığı 0 ile 1023 arasındadır (1K EEPROM) – sayısal değer uzunluğu: 4 bayttır, -2147483648 – 2147483647 – küçük endian düzeninde saklanan sayısal veri türü imzalı uzun tamsayı. val[addr+3]16777216+val[addr+2]65536+val[addr+1]*256+val[addr] – dize içerik uzunluğu: .txt içeriği .txt-maxl +1 veya sabit uzunluktur +1 kullanım: wepo <attr>, <addr> <attr>, değişken veya sabittir <addr>, EEPROM’daki depolama başlangıç adresidir wepo t0.txt,10 // t0.txt içeriğini 10 ila 10+t0.txt-maxl arasındaki adreslere yazar wepo “abcd”,10 // 10 ila 14 arasındaki adreslere “abcd” sabiti yaz wepo 11,10 // 10’dan 13’e kadar olan adreslerde sabit 11 yaz wepo n0.val,10 // 10 ile 13 arasındaki adreslere n0.val değerini yaz |
29 | repo | 2 | EEPROM’dan değeri oku – EEPROM geçerli adres aralığı 0 ile 1023 arasındadır (1K EEPROM) – sayısal değer uzunluğu: 4 bayttır, -2147483648 – 2147483647 – küçük endian düzeninde saklanan sayısal veri türü imzalı uzun tamsayı. val[addr+3]16777216+val[addr+2]65536+val[addr+1]*256+val[addr] – dize içerik uzunluğu: .txt içeriği .txt-maxl değerinden küçük veya boş değere ulaşılana kadar . kullanım: repo<attr>, <addr> <attr>, değişken veya sabittir <addr>, EEPROM’daki depolama başlangıç adresidir repo t0.txt,10 // adet .txt-maxl karakterlerini (veya boş olana kadar) 10’dan t0.txt’ye okur repo n0.val,10 // adres 10’dan 13’e 4 bayt n0.val’e okur |
30 | wept | 2 | Belirtilen sayıda baytı MCU’dan Seri üzerinden EEPROM’a depolayın – EEPROM geçerli adres aralığı 0 ile 1023 arasındadır (1K EEPROM) – wept Şeffaf Veri Modunu kullanır (bkz. 1.16) – seri arabellek ile sınırlı miktar (tüm komutlar+sonlandırmalar + veri < 1024) kullanım: wept <addr>,<qty> <addr>, EEPROM’daki depolama başlangıç adresidir <qty>, saklanacak bayt sayısıdır wept 30,20 // seriden 30 ila 49 arasındaki EEPROM adreslerine 20 bayt yazar // veri baytı, bayt değerinin ASCII metni değil, ham veri baytıdır. |
31 | rept | 2 | EEPROM’dan Seri üzerinden MCU’ya belirtilen sayıda baytı okuyun – EEPROM geçerli adres aralığı 0 ile 1023 arasındadır (1K EEPROM) kullanım: rept<addr>,<qty> <addr>, EEPROM’daki depolama başlangıç adresidir <qty>, okunacak bayt sayısıdır rept 30,20 // 30 ile 49 arasındaki EEPROM adreslerinden seriye 20 bayt gönderir // veri baytı, bayt değerinin ASCII metni değil, ham veri baytıdır. |
32 | cfgpio | 3 | Nextion GPIO’yu yapılandırma kullanım: cfgpio <io>,<mode>,<comp> <io>, genişletilmiş G/Ç pininin numarasıdır. – PWM çıkış modunda geçerli değerler: 4 ila 7, diğer tüm modlar 0 ila 7. <mode>,<io> tarafından seçilen pinin çalışma modudur. – Geçerli değerler: 0-pull up girişi, 1-girişli bağlama, 2-push pull çıkışı, 3-PWM çıkışı, 4-açık tahliye çıkışı. <mod> 1 olduğunda <comp> bileşeni .objname veya .id (aksi takdirde 0 kullanın) – ciltleme modunda, Touch olayına yeniden bağlanmak için sayfanın her yenilenmesinden sonra cfgpio’nun bildirilmesi gerekir, en iyisi cfgpio’yu sayfa ön başlatma olayına koymaktır cfgpio 0,0,0 // io0’ı pull-up girişi olarak yapılandırır. n0.val=pio0 olarak okuyun. cfgpio 1,2,0 // io1’i push-pull çıkışı olarak yapılandırır, pio1=1 olarak yazar cfgpio 2,1, b0 // io2’yi mevcut sayfa b0 ile bağlama girişi olarak yapılandırır. // bağlama tetikleyicileri b0 Düşen kenarda basın ve b0 Yükselen kenarda bırakın PWM modu için, görev döngüsünü cfgpio’dan önce ayarlayın: yani: %20 görev için pwm4=20. cfgpio 4,3,0 // io4’ü PWM çıkışı olarak yapılandırır. pwmf=933 Hz’yi değiştirmek için. // pwmf’yi değiştirmek, yapılandırılmış tüm PWM io4’ün frekansını io7’ye değiştirir |
33 | ucopy | 4 | Salt okunur. Etkin Protokol Yeniden Ayrıştırma modunda geçerlidir. Seri arabellekteki verileri kopyalar. Nextion etkin Protokol Yeniden Ayrıştırma modundayken, ucopy, seri arabellekten verileri kopyalar. Çoğu HMI uygulaması Protokol Yeniden Ayrıştırma gerektirmez ve tam olarak anlaşılmadıysa atlanmalıdır. kullanım: ucopy <attr>,<srcstart>,<len>,<deststart> <attr>, yazılabilir bir öznitelik olmalıdır, yani: t0.txt, va0.val <srcstart>, sayısal bir değer olmalıdır, yani: 0 <len>, sayısal bir değer olmalıdır, yani: 4 <deststart>, sayısal bir değer olmalıdır, yani: 0 ucopy n0.val,0,2,0 // arabellek bayt 0,1’i n0.val’in 2 baytının altına kopyala ucopy n0.val,0,2,2 // arabellek baytları 0,1’i n0.val’in üst 2 baytına kopyala ucopy n0.val,0,4,0 // arabellek baytlarını 0,1,2,4’e kopyala n0.val ucopy t0.txt,0,10,0 // 0’dan 9’a arabellek baytlarını t0.txt’ye kopyalayın |
34 | move | 7 | Bileşeni taşıma. kullanım: <comp>, <x1>,<y1>,<x2>,<y2>,<priority>,<time> <comp>, bileşen adı veya bileşen kimliğidir <x1>, başlangıç X koordinatıdır <y1>, başlangıç Y koordinatıdır <x2>, hedef X koordinatıdır <y2>, hedef Y koordinatıdır <priority>, 0 ile 100 arasında bir değerdir, 100 en yüksek önceliktir <time>, ms cinsinden zamandır. t0’ı 100,150 konumuna taşımak için t0,-30,-30,100,150,95,120 // 120ms hareket ettirin t1’i 200,150 konumuna taşımak için t1,-30,-30,200,150,90,180 // 180ms hareket ettirin t2’yi 300,150 konumuna taşımak için t2,-30,-30,300,150,100,150 // 150ms hareket ettirin // örnek öncelikler verildiğinde, önce t2 hareket eder, sonra t0 ve son olarak t1 |
35 | play | 3 | Seçili Kanalda ses kaynağını çaldırır kullanım: play <ch>,<resource>,<loop> <ch>bileşen adı veya bileşen kimliğidir <resource>, Ses Kaynağı Kimliğidir <loop>, döngü olması için 1 olmaması için 0 Notlar: Oynatma talimatı, ses oynatmayı yapılandırmak ve başlatmak için kullanılır. kanalı kontrol etmek için audio0 ve audio1 kullanılır. Ses çalma geneldir ve sayfalardan ayrılıp değiştirildikten sonra çalma devam eder, sayfadan çıkarken sesin durmasını istiyorsanız bunu sayfa ayrılma olayında yapmalısınız 1,3,0// döngü olmadan kanal 1’de kaynak 3’ü oynat 0,2,1// döngü ile kanal 0’da kaynak 2’yi oynat |
36 | twfile | 2 | Dosyayı Seri üzerinden aktarır kullanım: twfile <filepath>,<filesize> <filepath>, hedef yol ve dosya adı alıntısı kapsüllenmiş metindir <filesize>,dosyanın bayt cinsinden boyutudur. twfile “ram/0.jpg”,1120// jpg’yi seri üzerinden ram/0.jpg boyutuna 1120 bayta aktarın twfile “sd0/0.jpg”,1120// jpg’yi seri üzerinden sd0/0.jpg boyutu 1120 bayta aktarır |
37 | delfile | 1 | Harici dosyayı siler. kullanım: delfile <filepath> <filepath>, alıntı içine alınmış metin olarak hedef yol ve dosya adıdır delfile “ram/0.jpg”// aktarılan dosyayı kaldır ram/0.jpg delfile “sd0/0.jpg”// aktarılan dosyayı kaldır sd0/0.jpg |
38 | refile | 2 | Harici dosyayı yeniden adlandırın. kullanım: <oldname>,<newname> <oldname>, alıntı kapsüllenmiş metin olarak kaynak yolu ve dosya adıdır <newname>, alıntı içine alınmış metin olarak hedef yol ve dosya adıdır “ram/0.jpg”,”ram/1.jpg”// dosyasını ram/0.jpg olarak yeniden adlandırın ram/1.jpg “sd0/0.jpg”,”sd0/1.jpg”// dosyasını yeniden adlandırın sd0/0.jpg olarak sd0/1.jpg olarak yeniden adlandırın |
39 | findfile | Adlandırılmış harici dosya varsa Dosya Bul komutu kullanım: findfile <pathfile>,<result> <pathfile>, alıntı kapsüllenmiş metin olarak kaynak yolu ve dosya adıdır ,<result>, saklanacak sonucun sayısal bir özelliğidir. Bulma başarısız olursa 0 sonucunu, bulma başarılıysa 1 sonucunu döndürür. findfile “ram/0.jpg”,n0.val// dosyanın olup olmadığını kontrol edin, sonucu n0.val’de saklayın findfile “sd0/0.jpg”,sys0//dosya olup olmadığını kontrol edin, sonucu sys0’da saklayın |
40 | rdfile | Dosya içeriğini oku ve içeriği seri olarak çıkar kullanım: rdfile <pathfile>,<offset>,<count>,<crc> <pathfile>, alıntı kapsüllenmiş metin olarak kaynak yolu ve dosya adıdır <offset>,dosyanın başlangıç uzaklığıdır <count>,döndürülecek bayt sayısıdır (0 ise nota bakın) <crc>, bir seçenektir (0: crc yok, 1: Modbus crc16, 10: crc32) Sayı 0 ise, 4 baytlık dosya boyutu küçük endian sırasına göre döndürülür. rdfile “ram/0.jpg”,0,10,0// dosyanın ilk 10 baytını gönder, CRC yok, 10 bayt. rdfile “sd0/0.jpg”,0,10,1// dosyanın ilk 10 baytını gönder, MODBUS CRC, 12 bayt. rdfile “sd0/0.jpg”,0,10,10// dosyanın ilk 10 baytını gönder, CRC32, 14 bayt. |
41 | setlayer | 2 | Bileşen Katmanını Ayarlar kullanım: setlayer <comp1>,<comp2> <comp1>, katmanları değiştirmesi gereken bileşenin bileşen kimliği veya nesne adıdır <comp2>, bileşen kimliği veya comp1’in yukarıya yerleştirildiği nesne adıdır Not: 255’lik comp2 değerinin kullanılması, comp1’i en üst katmana yerleştirir. setlayer t0,n0//n0’ın katmanının üstüne yerleştirir setlayer t0,255//t0’ı en üstteki katmana yerleştir setlayer n0,3//n0’ı 3. katmana yerleştirin |
42 | newdir | 1 | Yeni bir dizin oluştur kullanım: newdir <dir> <dir>, oluşturulacak dizindir Not: dizin adı eğik çizgi ile bitmelidir / newdir “sd0/data/”//data adlı dizin oluştur newdir “sd0/202003/”//202003 adlı dizin oluştur |
43 | deldir | 1 | Bir dizini kaldır kullanım: deldir <dir> <dir>, silinecek dizindir Not: dizin adı eğik çizgi ile bitmelidir / deldir “sd0/data/”//data denilen dizini kaldır deldir “sd0/202003/”//202003 adlı dizini kaldır |
44 | redir | 2 | Bir dizini yeniden adlandırır kullanım: redir <srcdir>,<destdir> <srcdir>, yeniden adlandırılacak dizindir <destdir>, yeniden adlandırılan dizinin yeni adı Not: dizin adları eğik çizgi ile bitmelidir / “sd0/data/”,”sd0/data2/”//verileri data2 olarak yeniden adlandır yeniden yönlendirme “sd0/202003/”,”sd0/2004/”//202003’ten 2004’e yeniden adlandır |
45 | finddir | 2 | Dizin olup olmadığını test eder kullanım: finddir <dir>,<attr> <dir>, varsa test edilecek dizindir <attr>, sonucun saklanacağı sayı değişkeni Not: dizin adları eğik çizgi ile bitmeldir / Dizin varsa 1, bulunamazsa 0 döndürür finddir “sd0/data/”,va0.val//dizin verilerini bul, va0.val ile sonuçlanır finddir “sd0/2003/”,sys0//find directory 2004, sys0 ile sonuçlanır |
46 | udelete | 1 | Seri Arabelleğinden baytları kaldırır kullanım: udelete <qty> <qty>, Seri Arabellek’in başlangıcından kaldırılacak bayt sayısıdır Not: Protokol Yeniden Ayrıştırma Modunun (recmod) kullanılabilmesi için etkin olması gerekir. Çoğu HMI uygulaması Protokol Yeniden Ayrıştırma gerektirmez ve tam olarak anlaşılmadıysa atlanmalıdır. udelete 24//Tamponun ilk 24 baytını sil udelete 10//Buffer’ın ilk 10 baytını sil |
47 | crcrest | 2 | CRC’yi Sıfırla ve Başlat kullanım: crcrest <crctype>,<initval> <crctype>, 1 olmalıdır (Modbus CRC16 tipi) <initval>, crc başlangıç değeridir (genellikle 0xFFFF) crcrest 1,0xFFFF// crc’yi sıfırla ve başlat |
48 | crcputs | 2 | Değişken veya sabit için CRC’yi toplar kullanım: crcputs <attr>,<lenght> <attr>, öznitelik veya sabittir <lenght>, 0 (varsayılan) veya belirtilen uzunluktur crcputs va0.val,0//va0.val için crc biriktir (otomatik uzunluk) crcput’lar va1.txt,3//va1.txt’nin ilk 3 baytı için crc biriktirir |
49 | crcputh | 1 | Hex dizesi için CRC biriktirin kullanım: crcputh <hex> <hex>, hex karakter dizisidir Not: onaltılı dizedeki her bayt, bir boşlukla ayrılmış baytlar olmak üzere 2 onaltılı basamağa sahiptir. crcputh 0A//bayt 0x0A için crc biriktir crcputh 0A 0D//bayt için crc biriktir 0x0A 0x0D |
50 | crcputu | 2 | Seri Arabellek üzerinde CRC biriktirir kullanım: crcputu <start>,<qty> <start>, biriktirilecek Seri Arabellek başlangıç baytıdır <qty>, başlangıç baytı dahil olmak üzere toplanacak bayt sayısıdır Not: Protokol Yeniden Ayrıştırma Modunun (recmod) kullanılabilmesi için etkin olması gerekir. Çoğu HMI uygulaması Protokol Yeniden Ayrıştırma gerektirmez ve tam olarak anlaşılmadıysa atlanmalıdır. crcputu 0,10//Seri Tamponun ilk 10 baytı için crc biriktirir crcputu 10,10//ikinci 10 bayt için crc biriktir 0x0A 0x0D |
51 | spstr | 4 | Bölünmüş dize kullanım: spstr <src>,<dest>,<key>,<index> <src>, src .txt özniteliği veya dize veri sabitidir <dest>, sonucun depolandığı .txt özelliğidir <key>, çift tırnak içine alınmış metin sınırlayıcıdır <index>, döndürülecek sıfır dizinli yineleme sonucudur spstr “ab3cd3ef3ghi”,va1.txt,”3″,0//ilk sınırlayıcı oluşmadan önce ab dizesini döndürür spstr “ab3cd3ef3ghi”,va1.txt,”3″,2//ikinci sınırlayıcı oluştuktan sonra ef dizesini döndürür |