SDS-C: program upload

Verze z 26. 11. 2022, 16:09, kterou vytvořil Adamn (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Tato stránka popisuje programovací jazyk SDS-C, který je dostupný na vybraných zařízeních SDS. 
Některá zařízení používají FULL-C, pro který máme návody jinde na této WiKi.

Překlad zdrojového textu programu na spustitelný kód

Program zapisujete ve formě zdrojového textu (soubor s příponou .C). Tento zdrojový text je potřeba zpracovat (ověřit na chyby zápisu) a vytvořit z něj spustitelný kód, který bude SDS provádět. To se provede překladem (compile).

Překlad se provádí pomocí dodávané aplikace SDSC.EXE (nejnovější verze vždy ke stažení z této wiki).

SDSC.EXE můžete využít jako samostatné úplné IDE (prostředí pro zápis zdrojového textu programu, jeho překlad a simulaci, a také pro nahrání do SDS).

SDSC.EXE lze také využít jen čistě jako překladač, kdy se IDE nespouští.

Využití SDSC.EXE jako samostatného překladače - zadejte následující parametry příkazové řádky:

C:\SDS\SDSC.exe compile program.c

Lze vidět zadaný příkaz "compile" a název programu "program.c" (může být uvedená i celá plná cesta k souboru).

Po provedení překladu je výstup zapsán do .SCB souboru a průběh překladu (resp. chyby) jsou zapsány do .TXT souboru.

Pro tento příklad (překlad "program.c") to bude:

program.c.SCB
program.c.TXT

Pokud integrujete SDSC.exe jako překladač do vašeho IDE, vždy sledujte tyto dva výstupní soubory - a proveďte parsovaní TXT souboru (pro zobrazení výsledku překladu uživateli vašeho IDE). Vaše IDE pak může, přes POST metodu, nahrát nově vytvořený SCB soubor do SDS.


Způsoby nahrání vašeho SDS-C programu do SDS

SDS-C program zapíšete, a zpracujete (přeložíte) v aplikaci SDSC.EXE (stáhněte si vždy tu aktuální z této wiki).

Zpracovaný program je možné:

1. přímo ve SDSC.exe nahrát do zařízení SDS

2. uložit (pomocí SDSC.exe) do souboru .SDC pro pozdější využití (= znovuotevření ve SDSC.exe)

3. uložit (pomocí SDSC.exe) do souboru .SCB pro pozdější nahrání do SDS (= přes POST)


Pokud pouze a jenom nahráváte své SDS přímo z SDSC.exe, není pro vás dále zbytek této stránky podstatný.

Alternativní možnosti jsou k dispozici, zejména pokud chcete realizovat nahrávání (a konfiguraci) SDS svou vlastní aplikací.


Soubor .SDC

Tento soubor obsahuje jeden nebo více prvků, které si sami vyberete.

Každý prvek může nebo nemusí být do .SDC vložen: 1. zdrojový kód SDS-C programu 2. přeložený SDC-C program (pro nahrání do SDS) 3. UserWEB project 4. textová poznámka (pro identifikaci obsahu .SDC)

Soubor .SDC lze vytvořit ve SDSC.exe, a lze jej ve SDSC.exe také načíst.

Soubor .SDC je jako celek samostatně symetricky šifrován, a uživatel má možnost zvolit si heslo (je-li použito, nelze bez něj pak .SDC otevřít).


Soubor .SCB

Soubor .SCB obsahuje jen a pouze přeložený SDS-C program. Soubor .SCB existuje z důvodu potřeby implementace (vašich vlastních) skriptovaných metod nahrávání hotového SDS-C programu do SDS.

Soubor .SCB obsahuje čistý výstup z překladu provedeného SDSC.exe, a tento obsah .SCB lze přímo 1:1 nahrát do SDS, viz popis protokolů dole na této stránce.


POZOR soubor SCB lze vytvořit nejen "klikací" metodou v GUI programu SDSC.exe, ale lze jej vytvořit i dávkovým spuštěním, příklad:

V příkazové řádce spusťte SDSC.exe takto:

c:\sdsc\sdsc.exe compile program.c

Výsledkem bude přeloženy vstupní program (zdrojový kód) "program.c" do souboru "program.c.SCB" - a pokud se překlad nepovede, bude návratový kód aplikace (exit code) nenulový (jinak když se překlad povede, tak soubor .SCB vznikne, a exit code je nula).


Soubor .UWB

Soubor .UWB obsahuje přeložený UserWEB project. Soubor .UWB existuje z důvodu potřeby implementace (vašich vlastních) skriptovaných metod nahrávání hotového UserWEB projektu do SDS.

Obsah .UWB lze přímo 1:1 nahrát do SDS, viz popis protokolů dole na této stránce.


Komunikační protokoly pro nahrání SDS-C programu do SDS

Existují dva protokoly:

1. prostřednictvím UDP (8081) s proprietárním symetrickým šifrováním přenosu (unikátní klíč pro každé spojení)

Tento programovací UDP protokol je využit na všech SDS, nicméně interně se různě odlišuje (v detailech) podle Produktové Řady.

Tento protokol je dostupný jedině a pouze přes aplikaci SDSC.exe

Na některých SDS lze programování přes tento protokol dodatečně zakázat.


2. prostřednictvím HTTP POST protokolu (REST API) (unikátní salt pro každé spojení)

Přenáší se obsah .SCB nebo .UWB souboru (nebo také další funkce, jako je IP konfigurace).

Tento protokol je k dispozici na SDS řady ST - a to primárně z důvodu potřeby zákazníků skriptovat nahrávání a konfiguraci svých SDS (např. vlastním python skriptem).

Uživatel je nejprve autorizován (průmyslový standard: dvojitý SHA-256 hash vůči unikátnímu Salt, který je vždy jiný pro každé nové spojení), a poté je provedeno smazání původního programu a nahrání nového (klient pošle sekvenci příkazů a obsah svého souboru .SCB nebo .UWB).

Detaily tohoto protokolu jsou popsány zde: SDS: POST upload

Vzorová aplikace FCB_LOADER.exe je k dispozici na dotaz, i se zdrojovými kódy. Tato aplikace je univerzálně použitelná napříč všemi SDS které tento protokol mají implementován.


Proč tento způsob ?

  • Protože UDP protokol (8081) je proprietární a není možné jeho specifikaci běžně veřejně uvolnit.
  • Protože implementace autorizované komunikace přes HTTPS POST je průmyslovým standardem a je velmi snadné provést jeho skriptování v různých jazycích