SDK

sdkarena

SDK ve Arena Betik Dili Rehberi

1. Giriş ve SDK Genel Bakış

NetModule SDK, yönlendirici donanımı üzerinde müşteriye özel işlevlerin ve uç uygulamaların (edge applications) düşük gecikme ve yüksek verimlilikle geliştirilmesini sağlayan bir ekosistemdir. Sistem mimarisi, uygulama katmanı ile çekirdek servisler arasında güvenli bir izolasyon katmanı sağlar.SDK üç temel bileşenden oluşmaktadır:

  • SDK Host: Bellek, depolama ve CPU kaynaklarını yöneten, "sandbox" tabanlı izolasyon ve ölçeklenebilirlik sağlayan çalışma zamanı (runtime) ortamıdır.
  • Arena Betik Dili: Gömülü sistemler için optimize edilmiş, ANSI-C sözdizimine sahip, otomatik bellek yönetimi ve istisna desteği sunan hafif bir yorumlayıcı (interpreted) dildir.
  • SDK API: Donanım arayüzlerine, sistem parametrelerine ve haberleşme yığınlarına düşük seviyeli erişim sağlayan geniş kapsamlı uygulama programlama arayüzüdür.

2. Sistem Mimarisi ve Çalışma Zamanı Ortamı (Sandbox)

SDK mimarisi, sistem kararlılığını korumak için her bir süreci izole bir "Sandbox" içinde koşturur. Bu ortamın yönetimi, kaynak denetimi ve sistem stabilitesinden sorumlu olan sdkhost daemon tarafından gerçekleştirilir.

Teknik Kısıtlamalar ve Kaynak Yönetimi:

  • İzolasyon ve Güvenlik: Sandbox yapısı gereği, işletim sistemi seviyesindeki araçlara (örneğin ifconfig, iptables) doğrudan erişim kısıtlanmıştır; tüm etkileşim SDK API üzerinden yapılmalıdır.
  • Bellek ve CPU Limiti: sdkhost, her bir betiğin tüketebileceği maksimum RAM ve CPU döngüsünü kısıtlayarak ana sistem servislerinin kesintiye uğramasını engeller.
  • Depolama ve Genişletilebilirlik: Betikler için ayrılmış dahili Flash alanı sınırlıdır. Ancak mimari, veri yoğun uygulamalar ve loglama için USB depolama birimleri veya SD kartlar üzerinden dosya sisteminin genişletilmesine olanak tanır.
  • Uçucu Bellek Yönetimi: /tmp dizini doğrudan RAM üzerinde tutulur. Bu dizin yüksek performanslı geçici veri işleme imkanı sunar. Ancak betiğin her yeniden başlatılmasında (restart) bu dizin içeriği tamamen temizlenir.

3. Arena Betik Dili Özellikleri

Arena, gömülü sistem mimarları için modern programlama konseptlerini C dilinin performansıyla birleştiren bir dildir. Geliştiriciler, printf, open gibi standart POSIX fonksiyonlarını, NetModule'ün donanıma özel tescilli API fonksiyonlarıyla eş zamanlı olarak kullanabilirler.

Teknik Avantajlar:

  • Otomatik Bellek Yönetimi (Garbage Collection): Gömülü sistemlerdeki bellek sızıntısı (memory leak) risklerini minimize eder.
  • İstisna Yönetimi (Exceptions): Çalışma zamanı hatalarının (runtime errors) sistem kararlılığını bozmadan yakalanmasını sağlar.
  • Çok Biçimlilik (Runtime Polymorphism): Nesne tabanlı yaklaşımlara izin vererek kodun yeniden kullanılabilirliğini artırır.
  • Dinamik Yapı: Yorumlayıcı yapısı, derleme (compilation) süreçlerine gerek duymadan hızlı prototipleme ve devreye alma imkanı tanır.

4. SDK API ve Donanım Entegrasyonu

SDK API, cihazın tüm fiziksel katmanlarını ve ağ servislerini programlanabilir bir yapıya kavuşturur.Önemli Teknik Gereksinim: E-posta (SMTP) veya SMS gibi servislerin API üzerinden tetiklenebilmesi için, ilgili servislerin sistem arka planında (Web Manager veya CLI üzerinden) önceden yapılandırılmış olması şarttır.

Kategorize Edilmiş API Yetenekleri:

  • Haberleşme: TCP/UDP Client/Server, HTTP/FTP dosya transferi, SNMP ve CAN socket desteği.
  • Donanım Kontrolü: Dijital G/Ç portlarının yönetimi, seri port (RS-232/485) veri akışı, LED kontrolü ve GPS/GNSS veri akışları.
  • Sistem Yönetimi: Syslog entegrasyonu, konfigürasyon güncellemeleri ve ağ tarama işlevleri.

nb_status ve nb_config_set Mantığı

Sistem durumunu sorgulamak için kullanılan nb_status fonksiyonu, CLI üzerindeki durum çıktılarına benzer şekilde bir değişken yapısı (structure) döndürür. Geliştiriciler, hangi bölümlerin sorgulanabileceğini öğrenmek için CLI üzerinden cli status -h komutunu kullanarak ilgili bölümleri keşfedebilir. Sorgulanan durum verilerinde bir değişiklik tespit edildiğinde, nb_config_set fonksiyonu çağrılarak sistemin ilgili bölümlerinin çalışma zamanında yeniden yapılandırılması (re-configuration) tetiklenebilir.

5. İş Akışı: Betikler, Tetikleyiciler ve Görevler

NetModule SDK operasyonu, betiklerin mantıksal birer Görev (Job) olarak tanımlanması esasına dayanır.

  • Betik (Script): .are uzantılı Arena kod dosyasıdır. Web Manager üzerinden düzenlenebilir veya harici olarak yüklenebilir.
  • Tetikleyici (Trigger): Betiğin çalışma zamanını belirler.
  • Zaman Tabanlı: Cron tablosu mantığıyla (örn: her saat başı veya haftalık).
  • Olay Tabanlı: Sistem olaylarına bağlı (örn: wan-up olayıyla bağlantı kurulduğunda).
  • Görev (Job): Bir betik ile bir tetikleyicinin eşleştirilmiş halidir. sdkhost daemon'u bu görevleri izler, kaynaklarını denetler ve "test event" modülü üzerinden mantıksal doğrulama yapılmasına izin verir.

6. Yerleşik (Built-in) Betikler ve Uygulama Senaryoları

Betik Adı Açıklama
best-operator.txt Başlangıçta operatör taraması yapar ve en yüksek sinyal kalitesine sahip hücresel ağa bağlanır.
ping-supervision.txt Belirlenen uzak ana bilgisayarın erişilebilirliğini denetler ve bağlantı durumunu izler.
sms-control.txt Cihaza SMS ile gönderilen komutların CLI üzerinde yürütülmesini ve uzaktan yönetimi sağlar.
gps-udp-client.txt GPS NMEA veri akışını paketleyerek tanımlanan bir uzak UDP sunucusuna iletir.
modbus-tcp-rtu-gateway.txt Seri port üzerindeki verileri Modbus RTU/TCP protokolleri arasında köprüler.
email-to-sms.txt Gelen e-postaları yakalayıp belirlenen numaralara SMS olarak ileten bir ağ geçidi kurar.
serial-tcp-broadcast.txt Seri port ile TCP arasında çift yönlü veri yayın (broadcast) köprüsü oluşturur.

7. Uzaktan Erişim ve Dosya Yönetimi

SDK dosyalarının yönetimi ve betiklerin cihaza aktarımı için güvenli SCP (Secure Copy Protocol) kullanılır. Geliştiricilerin cihaz dosya sistemine erişimi için şu parametreler kullanılmalıdır:

  • Protokol: SCP
  • Kullanıcı Adı: root
  • Şifre: Cihazın mevcut admin şifresi
  • Dosya Yolu: Bağlantı kurulduktan sonra, SDK kullanımı için ayrılmış olan özel dosya dizinine gidilmelidir. Windows tabanlı sistemlerde bu operasyon için WinSCP kullanımı önerilir. Bu yöntem, IDE üzerinde geliştirilen kodların doğrudan yönlendiriciye deploy edilmesini kolaylaştırır.

8. Teknik Destek ve Kaynaklar

SDK API fonksiyonlarının tam listesi, parametre detayları ve Arena dil spesifikasyonları için NetModule SDK referans dokümanlarını inceleyin.

Teknik zorluklar veya özel entegrasyon projeleri için support@netmodule.com adresi üzerinden mühendislik ekibiyle iletişime geçebilirsiniz.

Projenizi birlikte hayata geçirelim

Mobil ağ bağlantıları, IoT/M2M ve Uç Bilişim çözümleri alanlarında uzman ekibimiz sizin için burada.