Sunucu betiklerini içe ve dışa aktarma
scada-manager script import ve script export, sunucu betiklerini bir projeyle bir dosya klasörü arasında taşır; örneğin
sürüm denetiminde tutmak ya da aynı kümeyi birkaç projeye yüklemek için. İçe aktarma, editördeki kayıtla aynı
denetimlerden geçer: değişen her betik yeni bir sürüm olur ve içe aktarma denetim kaydına yazılır.
Başlamadan önce
- YTCC sunucusunda, YTCC klasöründe bir komut isteminde çalışıyorsunuz. Komutlar yönetici araçlarıdır: bir betiğin izin ve sınır alanlarını ayarlayabilirler.
- Betiklerin yazdığı dahili sinyaller projede var.
Adımlar
1. Dosyaları denetleyin
- Yalnız
.jsdosyaları içe aktarılır. Betik adı uzantısız dosya adıdır: harf, rakam ve_, 1–64 karakter;CONya daCOM1gibi bir Windows aygıt adı olamaz. - Tip bildirimi olmayan TypeScript JavaScript'tir: uzantısını
.jsyapın. Tipli kod için editörde Compile and save kullanın.
2. İçe aktarmayı deneyin
scada-manager script import pump_station scripts --dry-run
<proje> slug, proje kimliği ya da görünen addır; proje çalışıyor olabilir. --dry-run her şeyi denetler ve hiçbir şey
yazmadan tüm sorunları listeler.
3. İçe aktarın
scada-manager script import pump_station scripts --activate
| Seçenek | Anlamı |
|---|---|
--activate | İçe aktarılan betikleri etkinleştirir. Verilmezse etkinlik olduğu gibi kalır; yeni betikler etkin olmadan başlar. |
--can-command --targets "Pump1.*,Valve?.Open" | Desenlere uyan saha noktalarına komut izni verir. İki seçenek birbirini gerektirir; boş hedef listesi reddedilir. |
--can-publish --publish-targets "Line1.*.Energized" | Desenlere uyan noktalara hesaplanan değer yayını izni verir. |
--publish-targets-file patterns.txt | Bir dosyadan satır başına bir yayın deseni okur, # açıklama içindir. --can-publish gerektirir. |
--handler-ms 2000 | İşleyici süre sınırını ayarlar. |
--can-command ya da --can-publish verilmezse var olan izin korunur; --handler-ms verilmezse var olan sınır korunur.
İçeriği değişmeyen dosya değişmemiş sayılır ve yeni sürüm almaz.
Betikler 200'lük gruplar hâlinde uygulanır. Bir grup başarısız olursa komut orada hatayla durur; önceki gruplar uygulanmış
kalır. Sorunu düzeltip komutu yeniden çalıştırın: değişmeyen betikler atlanır. Çalışan proje değişen betikleri birkaç
saniye içinde yeniden yükler. Denetim kaydı kullanıcıyı cli:<Windows kullanıcısı>, kaynağı import olarak gösterir.
4. Dışa aktarın
scada-manager script export pump_station yedek\betikler
Projenin her betiğini klasöre yazar: derlenmiş kodu olmayan betikleri yeniden içe aktarılabilen <ad>.js olarak, editörde
TypeScript'ten derlenmiş betikleri <ad>.ts olarak. Hedef klasörde .js ya da .ts dosyası olmamalıdır. --force ile
dosyalar önce geçici bir klasöre yazılır; ancak hepsi başarılı olursa projede artık olmayan betiklerin .js ve .ts
dosyaları kaldırılır ve yeni dosyalar taşınır. Klasördeki diğer dosyalara dokunulmaz.
Dışa aktarım klasörü VS Code için de hazırlar; bkz. Betiklerle VS Code'da çalışma. ytcc-script.d.ts ve
.ytcc-sync.json her dışa aktarımda yazılır; tsconfig.json ve .vscode/tasks.json yalnız henüz yoksa yazılır, böylece
bunlarda yaptığınız değişiklikler korunur. .d.ts dosyaları betik sayılmaz.
Yalnız büyük/küçük harfle ayrılan adlar (Pump ve pump; Windows bunları tek dosyaya koyardı) hiçbir şey yazılmadan
reddedilir.
Betiklerle VS Code'da çalışma
Dışa aktarılan bir klasör sunucu bilgisayarında VS Code ile açılabilir. Dışa aktarım betiklerin yanına şunları yazar:
| Dosya | Amacı |
|---|---|
ytcc-script.d.ts | defineScript, ctx ve alarm() için yerleşik editördekiyle aynı tip bilgisiyle tamamlama ve hata denetimi |
tsconfig.json | .js dosyalarını da denetler; çıktı üretmez |
.vscode/tasks.json | Terminal › Run Task altında üç görev: deneme (script import --dry-run), etkinleştirerek içe aktarma (script import --activate) ve kaydedince yükleyen izleme (script sync --watch) |
.ytcc-sync.json | Dışa aktarımdaki her betiğin sürümü. Silmeyin: eşitleme bununla çalışır |
Değişen dosyaları görev olmadan yüklemek için şunu çalıştırın:
scada-manager script sync pump_station yedeketikler --watch
script sync yalnız içeriği dışa aktarımdan ya da son eşitlemeden bu yana değişen .js dosyalarını yükler. --watch ile
klasörü Ctrl+C'ye basana kadar her saniye denetler; onsuz bir kez çalışır. --activate yüklenen
betikleri etkinleştirir de. Çalışan proje yüklenen betikleri yeniden yükler.
Eşitleme projede yapılan değişikliklerin üzerine yazmaz. Şu durumlarda dosya yüklenmez ve bir çakışma satırı yazılır:
- betik dışa aktarımdan sonra yerleşik editörde değiştirildiyse ya da
- betik projede var ama bu klasöre dışa aktarılmadıysa.
Devam etmek için --force ile yeniden dışa aktarın ve değişikliğinizi yeni dosyaya uygulayın. Başka bir projeden dışa
aktarılmış klasör reddedilir. TypeScript betiklerini (.ts) editörde Compile and save ile kaydedin.
Sonuç
Klasördeki betikler, değiştikleri yerde yeni sürümle projededir; ya da projenin betikleri klasördedir. Onları Automation › Server scripts'te denetleyin; bkz. Sunucu betikleri.