Il modo migliore per accedere all'hardware per porta seriale COM su adattatore USB

0

Stiamo avviando una nuova filiale nella nostra azienda. Di solito sto sviluppando interfacce di database o applicazioni / strumenti client / client interni per la nostra azienda, ma non ho mai dovuto fare qualcosa con l'hardware.

Szenario

Il mio capo vuole vendere un dispositivo, che ha uno schermo tattile per configurare molte, molte funzioni. Tuttavia, la configurazione del dispositivo può richiedere molto tempo. Vuole dare un software gratuito per un buon cliente e per un addebito a "piccoli" clienti. Il cliente dovrebbe essere in grado di utilizzare il software solo se si registra nel nostro sistema, in modo che non possa copiare il software senza un avviso da parte nostra.

Requisiti

Il dispositivo ha un cavo USB integrato. Se si collega il computer, viene aperta una nuova porta seriale COM. Il software ha i seguenti requisiti:

  • Configurazione di diversi regali per il dispositivo
  • Leggere e scrivere i preset sul dispositivo
  • Il software si rifiuterà di avviarsi, se l'utente non ha alcuna registrazione sul nostro server
  • L'utente può memorizzare i suoi preset sul nostro server e condividerlo con altri clienti
  • Un preset, copiato ripetutamente su più dispositivi

Il mio capo ha visto un sistema simile (ha detto qualcosa sui telecomandi di armonia Logitech) ed è ora su di me, per creare l'architettura.

Lato server: Il server non è quel tipo di problema. Abbiamo abbastanza macchine diverse per soddisfare qualsiasi tipo di favore (IIS, LAMPP, Apache / Tomcat ecc.). Potrei usare MSSQL o MySQL DBase per archiviare i dati, questo non è un problema.

Lato client: Questa è la parte difficile per me. Non ho mai fatto qualcosa con l'hardware. Il mio capo mi ha suggerito di usare Silverlight. Ho affermato che voglio farlo con un'applicazione nativa. Ma qual è la migliore combinazione?

  • Total Client-Side (C ++, C # o Java sono le lingue che potrei scrivere)
  • Struttura mista # 1 Silverlight + applicazione "Driver" nativa
  • Applicazione mista # 2 Java-Applet + applicazione "Driver" nativa
  • Solo browser - Silverlight o Java-Applet?
  • Qualsiasi altro suggerimento

Il dispositivo è destinato a un gruppo di clienti speciali che si sta allenando personalmente con qualsiasi acquisto, quindi i rischi per la sicurezza come il codice non sicuro oi pericolosi plug-in del browser non sono argomenti di vendita negativi.

Ho fatto qualche ricerca sulla connessione della porta seriale COM con Silverlight e P / Invoke, ma non voglio iniziare senza una discussione quale sarebbe il modo migliore.

    
posta Ello 11.06.2013 - 16:41
fonte

3 risposte

2

Sicuramente stai lontano da applet Java e Silverlight . Entrambe sono complicate per gli utenti, soggette a errori e il loro futuro è al meglio incerto.

L'unica parte difficile è il client .

Per il cliente, utilizzerei un linguaggio multipiattaforma ben supportato. Sfortunatamente, non si può essere sicuri che un runtime per tale lingua sia facilmente disponibile su un computer client. Quindi portalo con te.

Prenderei Ruby , Javascript ( node.js ) o Python . O ha un runtime relativamente compatto e consente di creare un'app autonoma autonoma dal programma. Accesso alla porta COM dovrebbe non essere difficile da nessuno di loro. Accedi al tuo server, ancora più semplice.

La tua app client richiederà probabilmente una GUI. Vado per una interfaccia utente web : avvia un server Web locale, smetto di preoccuparti dei toolkit della GUI multipiattaforma e simili.

Creerei una versione di un client per ogni tipo di SO principale (Windows, OSX, Linux) senza molte (se nessuna) modifica del codice e la distribuirò con il dispositivo.

La parte del server non è complessa; usa la tecnologia che preferisci. Per il protocollo client-server userei REST su HTTP (S) ; ha il minor numero di problemi con qualsiasi tipo di configurazione di rete, firewall, ecc. Ha anche strumenti eccellenti per la risoluzione dei problemi.

Un'altra parte difficile è l'autorizzazione lato server. Sarebbe meglio se il tuo dispositivo avesse un ID univoco, perché il tuo programma sarebbe molto più facile da decifrare di un dispositivo hardware.

Non vedo perché sia necessario, comunque. È il dispositivo che ti porta profitto . Non è possibile vendere altro software di supporto se non si vendono più dispositivi e il software di supporto è inutile senza un dispositivo. Darei dare via il software . Il tuo software non è diverso da un driver. Vedi, i produttori di schede grafiche permettono di scaricare i loro driver enormi e sofisticati gratuitamente, e si sentono bene. Anche tu.

    
risposta data 11.06.2013 - 20:54
fonte
0

Se il dispositivo non ha una propria interfaccia di rete, allora ci sono tre macchine da considerare per i casi d'uso in cui il dispositivo deve accedere al tuo server. Le tre macchine sono il server, il dispositivo e il computer del cliente a cui è connesso il dispositivo. Il computer del cliente deve essere considerato, poiché deve fungere da intermediario nel trasferimento dei dati tra sever e il dispositivo.

Per quanto riguarda il server, non importa quale tipo di tecnologia utilizzi, purché esista un protocollo definito per la comunicazione con il dispositivo e lo stack tecnologico in grado di gestire tale protocollo.

Per il dispositivo, dovresti utilizzare una tecnologia che può essere eseguita interamente sul dispositivo stesso, in quanto consente l'esecuzione autonoma di alcuni casi d'uso.

Per il computer del cliente, è possibile utilizzare una soluzione nativa o basata su browser, ma per entrambi è necessario considerare quali sistemi, rispettivamente, i browser potrebbero essere utilizzati dai clienti e se è possibile supportarli tutti. Per una soluzione nativa potrebbe significare che dovresti supportare diverse versioni allo stesso tempo. Inoltre, una soluzione basata su browser potrebbe essere considerata più user-friendly.

    
risposta data 11.06.2013 - 20:16
fonte
0

Ho fatto un sacco di comunicazioni seriali nel corso degli anni, e scrivere una domanda nativa è la strada da percorrere. Ti consente di installare correttamente l'applicazione e di assicurarti che abbia privilegi del sistema operativo sufficienti per accedere alla porta COM, piuttosto che pregare che il browser web dell'utente sia configurato per richiedere all'utente di consentire l'accesso.

Devi considerare alcune condizioni di errore, come il dispositivo che viene rimosso mentre ti trovi nel codice di comunicazione seriale, ma questa è una strada percorribile.

Domanda per te, però, perché vendere i dispositivi non configurati e aspettarti che il cliente li configuri, il che significa che genereranno molte domande di supporto quando il processo non andrà a buon fine.

Perché non preconfigurare prima di spedire il dispositivo? Ci sono cose che puoi fare internamente per semplificare il processo di configurazione quando sei in grado di controllare l'ambiente di installazione.

    
risposta data 24.09.2013 - 12:55
fonte

Leggi altre domande sui tag