Jaký jazyk na analýzu signálů?   zodpovězená otázka

C#, VB.NET, Architektura, C++/C, Grafika

Ahoj. Chtěl bych Vás požádat o radu.

Mám širokopásmový radiový přijímač, který jsem obdržel na testování, ale má opravdu strašné ovládací UI, tak jsme se rozhodli, že vytvoříme vlastní, které bude trochu na úrovni.

Přijímač se k PC připojuje pomocí ethernetového portu a komunikuje přes TCP/IP. Potřebujeme vytvořit prostředí, které bude přijímat a odesílat jednoduché nastavovací příkazy přes TCP/IP ... což pro nás není problém. Ale program bude zároveň umožňovat real-time analýzu spektra (rychlá Fourierova transformace) z přijatých vzorků signálu a to je důvod, proč Vás žádám o radu. Mám zkušenosti s vb.net, takže bych to radši napsal v tom, ale nerad bych začal něco vytvářet a pak zjistil, že na to vb.net nestačí.

Moje otázky tedy zní:

1) Zvládne vb.net FFT analýzu a její real-time vykreslování do grafu, nebo mám k výpočtu použít třeba C++?

2) Existují ve vb.net instrukce pro bit/byte operace jako třeba shiftování bitů, XOR, atd atd?

3) V čem vytvořit UI? Vždy jsem vytvářel akorát formulářové nebo konzolové aplikace, ale teď bych potřeboval vytvořit vlastní grafické rozhraní.

4) Jde udělat ovládací prostředí v html a jádro programu mít ve vb.net/c++?

Tak to je všechno :) Doufám, že jsem to vysvětlil dostatečně a za každou radu děkuju.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

1) Neměl by být problém

2) Ano

3) Windows Forms, lze tam provádět vlastní vykreslování

4) Hovadina, pomalé

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

4) Nemuselo by to být tak hrozně pomalé, i když záleží, na co to potřebujete. Nové prohlížeče umí canvas, který je rychlý.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, určitě to ale nebude ani rychlejší, ani jednodušší -> hovadina.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Není to jednodušší, ale záleží to na účelu té aplikace. Třeba je to mobilní aplikace pro WP nebo metro aplikace pro Windows 8, kde se UI v HTML píše.

A o tolik složitější to není - výstupem C++ části může být pole čísel a vykreslit pár čar pomocí canvasu v HTML je záležitost na pár řádků, on canvas funguje de facto na stejném principu jako System.Drawing.Graphics. Není to o moc složitější než napsat to ve WinForms. A co se týče výkonu, pokud ta grafika je pár čar, tak to nebude pomalé ani v tom HTML.

Ale na to by měl odpovědět tazatel, co ho vedlo k tomu uvažovat o HTML.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Mohu vás ujistit, že pro metro ani windows phone to není, sám víte moc dobře proč.

Osobně nevidím problém v rychlosti vykreslování pomocí HTML5 (ten Canvas), ale v tom, jak efektivně (v reálném čase) dostat ty data z nativní aplikace do webového rozhraní.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jak to víte? Nevšimnul jsem si, že by to tazatel zmiňoval.

Do COM komponenty Internet Exploreru není problém data dostat, je to volání jedné funkce, tuším že se jmenuje InvokeScript. Případně si přímo javascript může přes CreateObject vytvořit instanci wrapperu pro ten COM objekt a data si odtud tahat sám, což taky může být na jednu funkci. Nějaká režie tam je, to pochopitelně, nicméně záleží, kolik dat tudy má protékat - třeba to bude snesitelné, přeci jen dnešní počítače toho hrubou silou upočítají hodně.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To je ukázkový příklad přímo dobytčího způsobu použití platformově nezávislého HTML. Udělat to tak, aby to fungovalo pouze ve Windows (COM) a pouze v internet exploreru.

Takto udělané webové aplikace potom naprosto ztrácí veškeré svoje výhody. Proč to potom rovnou neudělat jako desktopovou aplikaci?!

Vrchol všeho je SharePoint. Klienti tohoto hnoje běží pouze v IE a vyžadují nainstalováno asi tak milion různých runtime knihoven. CO TO JE?!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Že nějaká technologie umí být multiplatformní přece neznamená, že je nutné této možnosti vždy a za každých okolností využít. Záleží na účelu.

Mimochodem to, že SharePoint potřebuje spoustu COM modulů (podle mě jich v poslední verzi tolik není), svědčí jen o omezenosti té vaší slavné multiplatformní technologie, kde i pro blbý přístup do schránky, pořádný upload více souborů potřebujete buď flash, nebo nějaký ActiveX modul, protože jinak to nejde. MS tam ty COM objekty nedává jen tak ze srandy, ale řeší tím situace, kdy HTML prostě něco neumí a jinak to řešit nejde.

Navíc pokud tazatel uvažuje o tom, že by jádro aplikace běželo někde na serveru a klient mohl přistupovat k datům z jiného počítače, tak toto nutné nebude, nedávno jsme dělali podobnou věc a vypadalo to takto:

1) jádro v C++ posílalo průběžně (zhruba každou sekundu) výsledky webové aplikaci

2) ta to pomocí SignalR přeposílala webové stránce

3) webová stránka vykreslovala graf

Výhodou webové aplikace bylo, že na rozdíl od desktopové aplikace si klient nemusel nic instalovat a dalo se to snadno updatovat - prostě jen otevřel stránku, přihlásil se a viděl v reálném čase data z toho zařízení.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Spletl jsem se, nebyl to SharePoint ale Microsoft Dynamics CRM.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Moc díky za odpověď.

Nerad bych, aby se ta diskuze strhla k hádce produkty MS vs. ostatní :(

Ten nápad s webovým uživatelským rozhraním je právě z důvodu, který píšete v posledním odstavci - nemuset nic instalovat navíc.

Často jsme se už setkali s problémem, že bylo potřeba vytvořit aplikaci pro firmu, která měla velice přísnou bezpečnostní politiku inf. systémů. Je to pak zdlouhavý proces získat certifikace nejen pro použití samotné aplikace, ale i různých frameworků, serverů atd atd, které jsou pro její běh potřebné. Sice se jedná jen o to, že se nějaký ajťák té firmy na ten program mrkne a řekne, že je to OK, ale otravuje to vás i klienta. Proto se mi zdá webové rozhraní jako smysluplné řešení.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Někde ten Framework nebo jiné runtime knihovny stejně být musí. Buď na X klientech, nebo na serveru.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak nejdřív vám oběma díky za odpovědi.

Pokusím se trochu rozseknout vaší hádku :)

Důvod, prč jsem uvažoval o C++ je hlavně použitelnost pod různýma OS. Dá se totiž předpokládat, že přijímač bude na nějakém vzdáleném stanovišti a nikdo neví, jestli bude připojený k nějakému MS serveru nebo Linuxovému - program by později mohl jít do distribuce.

A z toho plyne i otázka na možnost propojení html jako poměrně univerzálního GUI třeba s C++. Pokud začnu programovat prostředí ve vb.net, je jasné, že v případě použití na jiném než MS serveru, bude program na nic. Proto mě napadlo, že ovládání/zobrazování bych vytvořil v html/css/js a jádro třeba v C++. Ale je mi jasné, že nějaké zpomalení tam bude a radši teda upřednostním rychlost FFT před čímkoli jiným. Ptal jsem se hlavně z hlediska možného budoucího rozšíření na jiné platformy.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A co použít QT framework ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A co použít QT framework ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback