Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    137

    [VB] conoscere indirizzo ip di una periferica

    ciao come da titolo volevo sapere se è possibile conoscere l'indirizzo ip di una periferca connessa alla porta Comm es (stampante modem ecc.)
    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Se è connessa ad una porta COM, a cosa ti servirebbe - ammesso che ce l'abbia - l'indirizzo IP di una periferica?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    137
    siccome devo programmare un lettore di badge collegato al pc tramite porta seriale , il lettore colloquia con il pc tramite (winsock e host).
    vi allego alcune pagine di programmazione
    codice:
    APPENDICE A
    PROTOCOLLO DI COLLOQUIO
    DEL TERMINALE LBX 2712
     
    1.    MODALITÀ' DI COLLOQUIO
    Il termine colloquia con l'host per lo scambio dei dati con le modalità di polling-selecting. Il formato dei caratteri trasmessi ed i tempi di turn-around della comunicazione sono indicati nel Cap.1, paragrafo 1.2.3.
    2.    POLLING (fig. 1)
    a.	L'apertura del colloquio viene fatta su ini
    ziativa dell'host per mezzo di una richiesta
    <ENQ> (enquiry) (05h) indirizzata
    (<ADD>) ad un terminale specifico.
    b.	Il terminale (definito da ADD) che riceve la
    richiesta di colloquio, risponde all'host con
    un testo il cui contenuto dipende dallo sta
    to del terminale.
    e. Il testo, composto unicamente da dati numerici e alfanumerici ASCII, è racchiuso fra caratteri di controllo nel modo seguente:
    <STX*>/<ADD>/<STATO>/<TESTO>/ /<ETX>/<LRC>/<CR>
    dove:
    -	<STX*> (start of test) indica <STX1> (11h), oppure <STX2> (12h).
    -	<ADD> é l'indirizzo del terminale (compreso tra 30h e 4Fh). 
    -	<STATO> è la situazione di funzionamento del terminale:
    
    	Buffered	Enquiry
    Fuori servizio	31h	36h
    In servizio	32h	34h
    In batteria	33h	35h
    -	<ETX>(endoftext) = 13h
    -	<LRC> (longitudinal redundancy check) è il carattere di parità longitudinale.
    -	<CR> (carriage return) = ODh
    d.
    La scelta fra <STX1> e <STX2> viene fatta dal terminale, che trasmette <STX1> se è la prima volta che invia quel testo, altrimenti il testo è preceduto <STX2>.
    NOTA:   Il testo 'orario' è sempre preceduto da<STX1>.
     
    e.	Il carattere di parità longitudinale non
    comprende il carattere <STX*> e viene
    calcolato eseguendo l'operazione di EX-
    CLUSIVE OR.
    f.	In risposta ad un testo ricevuto formal
    mente corretto, l'host risponde:
    -	<ACK> (06h) nel modo buffered;
    -	<ACK> (06h), oppure <NACK> (15h) nel modo enquiry.
    g.	Ad ogni richiesta di dati, il terminale è
    sempre pronto a trasmettere e distingue
    fra loro i testi trasmessi per la prima volta
    (preceduti da <STX1>) da quelli trasmessi
    precedentemente (preceduti da <STX2>).
    h. La ricezione di <SYN> (synchronous idle) (16h), in qualsiasi momento del flusso, porta la gestione del protocollo di colloquio allo stato iniziale.
    2.1.    STRUTTURA DEL TESTO
    a. Terminale con calendario completo senza transazioni:
    GG   MM   AA  HH	mm   ss
    '|	                                                          secondi (00-59)
                                                    |-------------------minuti   (00-59)
                                        |-----------------------------------ore (00-23)
                               |--------------------------------------  anno (00-99)
                     |--------------------------------------------- mese (01-12)
    |	 giorno del mese
    (01-31)
    NOTA:   Dati in codice ASCII
    b. Terminale con transazioni:
    1. Nel terminale con causalizzazione disabilitata (parametro KN = 0) il testo è costituito da tre campi: <matricola>/<senso>/<orario>
     
    A-1
     
    ALBX 2712
     
    HQST
    o
     
    TERMINALE
     
    <ENQ> Jfc... <ADD»   ^
     
    r
     
     
    SPOSTA IL PUNTATORE
    DELLE TRANSAZIONI
    ALLA SUCCESSIVA SE
    AVEVA TRASMESSO
    UNA TRANSAZIONE
    
    Figurai. Flusso del polling
     
    2.	Nel terminale con causalizzazione abi
    litata il testo è costituito da quattro
    campi:
    <matricola>/<senso>/<causale>/ /<orario>
    3.	La matricola (o codice utente) è un campo di lunghezza variabile.
    4.	Il senso entrata/uscita assume i valori 31 h (entrata) e 30h (uscita).
    5.	La causale è un campo formato da un
     
    numero di caratteri specificato dal parametro KN.
    6. li campo orario è definito nel capoverso a. precendente.
    e. Altri messaggi:
    1. In seguito ad uno dei seguenti selec-ting:
    - percentuale di riempimento del FIFO (par. 3.2.9),
     
    
     
    /.
    -	invio dei parametri di configurazione (par. 3.3.8),
    -	orario corrente del terminale,
    il terminale, nel successivo polling, risponde con un testo costituito da tre campi: <preambolo>/<testo>/<orario>
    2.	Il campo preambolo è costituito da un
    carattere che identifica il tipo di testo
    trasmesso in seguito ed assume i se
    guenti valori:
    -	47h, percentuaJe di riempimento FIFO;
    -	48h, parametri di configurazione del terminale;
    -	49h, orario del terminale.
    
    3.	Il testo relativo alla percentuale di riempimento FIFO è costituito da tre caratteri numerici ASCII.
    4.	Il testo relativo ai parametri di programmazione è costituito da 256 caratteri numerici ASCII corrispondenti ai valori dei parametri.
    I valori sono inviati nell'ordine in cui sono memorizzati in EEPROM (vedere l'Appendice B). L'orario non viene inviato.
    5.	Nel caso di invio dell'orario del terminale, il testo è assente.
    6.	Il campo orario è definito nel capoverso a. precedente.
    3.   SELECTING (fig. 2)
    a.	Quando l'host deve fornire dati ad un ter
    minale, lo fa con la procedura di selecting.
    b.	La chiamata avviene tramite il comando
    <BEL> (07h) seguito dall'indirizzo del ter
    minale che deve essere selezionato.
    e. Alla ricezione di questi dati, il terminale che risponde all'indirizzo trasmesso, risponde con <ACK> (06h) seguito dallo stesso indirizzo e termina con <CR> (ODh) per dare all'host il consenso alla trasmissione del testo.
    d. Se il terminale non è pronto a ricevere un testo di selecting, risponde con la sequenza:
    <WACK>/<ADD>/<CR>
    dove:
    - <WACK> è formato dai caratteri 10h e 3Bh;
     
    
    -	<ADD> è l'indirizzo del terminale;
    -	<CR> = 0dh
    e.	Se l'host non rileva alcun dato o rileva dati
    incomprensibili, ritrasmette i comandi di
    selezione.
    f.	Quando l'host ha ottenuto il consenso per
    l'invio del testo, lo fa trasmettendo nell'or
    dine:
    <STX>/<ADD>/<TESTO>/<ETX>/<LRC>
    dove:
    -	<STX>=11h.
    -	<ADD> è l'indirizzo del terminale.
    -	<ETX> = 13h.
    -	<LRC> è il carattere di parità longitudinale.
    g.	Il carattere di parità longitudinale non
    comprende il carattere <STX> e viene cal
    colato eseguendo l'operazione EXLUSI-
    VE-OR.
    NOTA:   Se <LRC> = <SYN> non si ha il rifiuto della transazione.
    h. Il testo è una stringa di informazioni di cui il primo carattere (preambolo) identifica iL tipo di informazione che segue.
    i. Se il terminale riceve il testo in modo formalmente corretto risponde con <ACK>; la ricezione di <ACK> conferma all'host che il terminale selezionato ha ricevuto il testo inviato ed a sua volta risponderà con <EOT> (end of transmission) (04h).
    j. La ricezione di <SYN> (16h) in qualsiasi momento del flusso, porta la gestione del protocollo di colloquio allo stato iniziale.
    3.1.   SELECTING RIDOTTO
    È possibile comunicare con il terminale mediante la procedura di selecting ridotto. Il selecting ridotto è illustrato in figura 2 nella parte di grafico inclusa tra i delimitatori <***>. Viene quindi omessa, rispetto al normale selecting, la parte iniziale (da <BELL> a <STX> escluso) ed il carattere <EOT>.
    3.2.   SELECTING DI USO GENERALE
    3.2.1.  Selecting di sincronizzazione dell'orario con abilitazione del terminale.
    Il testo è aperto dal carattere di preambolo 30h, la parte seguente è definita nel capoverso a. del paragrafo 2.1.
     
    A-3
     
    LBX 2712
     
     
    TERMINALE
    NON RISPONDE
    TRASMISSIONE DISTURBATA
     
    Figura 2. Flusso del selecting
    3.2.2.  Selecting di disabilitazione del ter-       3.2.4. Selecting di funzionamentoin modo
    minale	enquìry
     
    Il testo è costituito dal solo preambolo 36h.
     
    Il testo è costituito dal solo preambolo 3Eh.
     
    
     
    3.2.3. Selecting di funzionamento in modo buffered
    li testo è costituito dal solo preambolo 3Dh.
     
    3.2.5. Selecting di visualizzazione testo
    Il testo è aperto dal carattere di preambolo
    3Fh, la parte seguente è una stringa in codice
    ASCII.
    Questo selecting viene utilizzato in modo en-
     
    
     
    
     
    quiry per visualizzare un messaggio dell'host in risposta ad una transazione e conseguentemente per riabilitare le funzioni del terminale. Quando il terminale si trova in modo buffe-red, questo selecting può essere utilizzato per visualizzare del testo inviato da host.
    3.2.6.	Selecting di invio dei codice
    impianto
    Il testo è aperto dal preambolo 32h, la parte seguente è costituita da una stringa di caratteri ASCII che formano il codice impianto. Il codice impianto viene memorizzato nella memoria RAM del terminale.
    3.2.7.	Selecting di recupero FIFO
    Il testo è costituito dal solo preambolo 40h. Se il terminale è predisposto per il recupero del FIFO (parametro FR = 1), le transazioni già inviate dal terminale vengono trasmesse nuovamente.
    3.2.8.	Selecting di cancellazione FIFO
    Il testo è costituito dal solo preambolo 41 h. Se il terminale è predisposto per il recupero del FIFO (parametro FR = 1), le transazioni già trasmesse vengono cancellate.
    3.2.9.	Selecting di richiesta delia percen
    tuale di riempimento del FIFO
    Il testo è costituito dal solo preambolo 50h. Il dato richiesto viene inviato all'host con un opportuno polling (vedere il par. 2.1).
    3.2.10.	Selecting di richiesta dell'orario cor
    rente
    Il testo è costituito dal solo preambolo 51 h. L'orario corrente del terminale viene inviato all'host mediante un opportuno polling (vedere il par. 2.1).
    3.2.11.	Selecting di sincronizzaione genera
    le dell'orario
    a. La sincronizzazione generale dell'orario (globali cali) avviene seguendo la procedura di colloquio seguente:
    <SOH>/<TESTO>/<ETB>/<LRC>
    dove:
    -	<SOH> (start of heading)=02h.
    -	<ETB>   (end  of  transmission  block) =27h.
    -	<LRC> è il carattere di parità longitudi-
     
    nale (nel computo del carattere <LRC> non è compreso <SOH>).
    b. Il testo è definito nel capoverso a. del paragrafo 1.2.1.
    3.3.   SELECTING Di PROGRAMMAZIONE DEL TERMINALE
    I	selecting di programmazione del terminale
    (tabella e parametri), sono aperti dal carattere
    di preambolo 43h. Il carattere successivo
    specifica il contenuto e la funzione del testo
    seguente.
    Le funzioni previste sono le seguenti:
    -	30h, cancellazione tabella;
    -	31 h, invio della tabella;
    -	32h, invio o modifica di righe della tabella;
    -	33h, cancellazione di righe della tabella;
    -	34h, modifica dei campi della tabella;
    -	35h, invio delle fasce orarie;
    -	36h, invio dei parametri di programmazione;
    -	37h, richiesta dei parametri di programmazione.
    3.3.1.	Cancellazione tabella
    il testo è costituito dai soli preamboli 43h. e 30h.
    3.3.2.	Invio della tabella
    II	testo è aperto dai preamboli 43h e 31 h. La
    parte seguente è strutturata come segue (ve
    dere il Cap. 3, par. 3.4.2):
    <chiave 1 >/<dati>/... /<chiave 1>/ /<dati>/<TTXT>
    dove:
    -	<chiave 1> è la sequenza di caratteri che costituisce la prima chiave di ricerca;
    -	<dati> è il contenuto dei campi che costituiscono le righe della tabella;
    -	<TTXT> è il carattere terminatore 7Fh.
    3.3.3.	Invio/modifica di righe della tabella
    Il testo è aperto dai preamboli 43h e 32h. La parte seguente è strutturata come segue:
    <chiave 1>/<dati>/... /<chiave 1>/ /<dati>/<TTXT>
    dove:
    -	<chiave 1 > è la sequenza di caratteri che costituisce la prima chiave di ricerca;
    -	<dati> è il contenuto dei campi che costituiscono le righe della tabella;
    -	<TTXT> è il carattere terminatore 7Fh.
     
     
     
    Se viene trovata una riga delia tabella con la prima chiave di ricerca uguale a <chiave 1 > ricevuto nel messaggio di selecting, i campi corrispondenti vengono sostituiti con il contenuto di <dati>. Se nessuna riga ha una chiave di ricerca uguale a <chiave 1 >, viene aggiunta una nuova riga in fondo alia tabella.
    3.3.4.	Cancellazione di righe della tabella
    Il testo è aperto dai preamboli 43h e 33h. La parte seguente è Strutturata come segue:
    <chiave 1>/... /<chiave 1>
    dove <chiave 1> è la prima chiave di ricerca; le righe corrispondenti vengono cancellate.
    3.3.5.	Modifica dei campi della tabella
    il testo è aperto dai preamboli 43h e 34h. La parte seguente è strutturata come segue:
    <chiave 1>/<chiave 2>/<TTXT>/<dati>/...
    -	<chiave 1> è la sequenza di caratteri che costituisce la prima chiave di ricerca;
    -	<chiave 2> è il carattere che costituisce la seconda chiave di ricerca;
    -	<TTXT> è il carattere terminatore 7Fh;
    -	<dati> è il nuovo contenuto del campo.
    3.3.6.	Invio delle fasce orarie
    Il testo è aperto dai preamboli 43h e 35h. La parte seguente è strutturata come segue (vedere ilCap. 3, par. 3.4.3):
    <he1 h>/<he1 l>/<me1 h>/<me1 l>/<hu1 h>/
    /<hu1 l>/<mu1 h>/<mu1 \>l
    <he2h>/<he2l>/<me2h>/<me2l>/<hu2h>/
    /<hu2l>/<mu2h>/<>mu2l>/
    <he3h>/<he3l>/<me3h>/<me3l>/<hu3h>/
    /<hu3l>/<mu3h>/<mu3l>/....
    dove:
    -	<he1 h> è la cifra delle decine dell'ora di ingresso del primo periodo di abilitazione;
    -	<he1l> è la cifra delle unità dell'ora di ingresso del primo periodo di abilitazione;
    -	<me1 h> è la cifra delle decine dei minuti di ingresso del primo periodo di bilitazione;

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da donini
    siccome devo programmare un lettore di badge collegato al pc tramite porta seriale , il lettore colloquia con il pc tramite (winsock e host).
    vi allego alcune pagine di programmazione
    Nella documentazione deve esserci già riportato qual è l'indirizzo IP predefinito da utilizzare per collegarsi allo strumento. Non è un dato da dover ricercare.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    137
    dopo una attenta lettura del manuale ho trovato l indirizzo del terminale , lindirizzo è composto da cinque numeri in base alla selezione dei microinderuttorri nella scheda madre.
    ma pultroppo anche dopo questa soluzione non riesco a far cominicare il pc con il terminale

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da donini
    dopo una attenta lettura del manuale ho trovato l indirizzo del terminale , lindirizzo è composto da cinque numeri in base alla selezione dei microinderuttorri nella scheda madre.
    Se si tratta di un indirizzo IP, i numeri sono 4.

    Comunque, il problema dell'impostazione elettronica della scheda non ha molto a che vedere con la programmazione VB6.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    137
    da quello che ho letto nel manuale sembra che siano 5 pero posso anche sbagliarmi
    nel manuale viene riportato cosi
    codice:
    CAPITOLO 3 PROGRAMMAZIONE DEL TERMINALE
     
    3.1.  GENERALITÀ'
    La programmazione serve ad inpostare i parametri di funzionamento e l’eventuale tabella residente nella memoria RAM.  pàrametri determinano le modalità di funzio-. namento del terminale, la tabella serve a determinare le operazione che il terminale esegue durante le transazioni. La programmazione viene effettuata secondo procedure differenti:
    -	programmazione dei microinterruttori;
    -	programmazione della memoria;
    -	programmazione mediante tastiera.
    La programmazione dei microinterruttori viene effettuata posizionando adeguatamente i ponticelli ed i microinterruttori posti sulla scheda CPU o sulle schede d'interfaccia installate sul terminale.
    La programmazione della memoria viene effettuata mediante l'invio da parte dell'host di opportuni messaggi. I messaggi di programmazione vengono trasmessi al terminale mediante la linea di comunicazione. Esiste la possibilità di impostare alcuni parametri di funzionamento (cambio dell'ora solare/legale e sincronizzazione oraria) mediante la tastiera di servizio ed il badge chiave.
    3.2.  PROGRAMMAZIONE DEI MICROINTERRUTTORI
    Per effettuare la programmazione dei microinterruttori è necessario sfilare il terminale dalla cassa (vedere il par. 2.3.2) onde poter accedere alla scheda CPU ed alle interfacce installate.
    I parametri impostati mediante la programmazione dei microinterruttori divengono operativi solo in seguito ad un reset del terminale. La posizione dei ponticelli sulla scheda CPU è illustrata nella figura 1-4.
    3.2.1.   INDIRIZZO DEL TERMINALE
    L'indirizzo del terminale serve ad identificare univocamente il terminale stesso durante le
     
    procedure di colloquio con l'host. L'indirizzo è costituito da un valore esadecimale compreso tra 30h e 4fh e viene impostato mediante i microinterruttori 1+5-del gruppo SW1
    Nella tabella 3-I è riportata la posizione dei microinterruttori in funzione dell'indirizzo del terminale.
    Tabella 3-1. Indirizzo del terminale
    
    INDIRIZZO	MICROINTERRUTTORI SW1
    ESADECIMALE	1	2	3	4	5
    30h	0	0	0	0	0
    31h	1	0	0	0	0
    32h	0	1	0	0	0
    33h	1	1	0	0	0
    34h	0	0	1	0	0
    35h	1	0	1	0	0
    36h	0	1	1	0	0
    37h	1	1	1	0	0
    38h	0	0	0	  1	0
    39h	1	0	0	  1	0
    3Ah	0._	  1	0 .	  1	0
    3Bh	1	1	  0	  1	     0
    3Ch	0	0	1	  1	0
    3Dh	1	0	1	  1	0
    3Eh	0	1	1	  1	0
    3Fh	1	1	1	  1	0
    40h	0	0	0	0	     1
    41h	1	0	0	0	     1
    42h	0	1	0	0	     1
    43h	1	1	0	0	     1
    44h	0	0	1	0	     1
    45h	1	0	1	0	     1
    46h	0	1	1	0	     1
    47h	1	1	1	0	     1
    48h	0	0	0	  1	     1
    49h	1	0	0	  1	     1
    4Ah	0	1	0	  1	     1
    4Bh	1	1	0	  1	     1
    4Ch	0	0	1	  1	     1
    4Dh	1	0	1	  1	     1
    4Eh	0	 1	1	  1	     1
    4Fh	1	1	1	  1	     1
    3.2.2.   VISUALIZZAZIONE DEI
    PARAMETRI DI CONFIGURAZIONE
    I parametri di configurazione del terminale possono essere visualizzati sequenzialmente e ciclicamente posizionando il microinterruttore 6 del gruppo SW1 in posizione ON.

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Non si parla mai di indirizzo IP... evidentemente, scambi come indirizzo IP qualcosa che non lo è.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quella periferica viene interfacciata con il semplice protocollo RS232 su porta seriale.

    Non c'entra nulla ne' il winsock ne' un indirizzo IP ...

    L'indirizzo indicato e' un byte che deve essere inviato nella stringa (secondo il protocollo applicativo indicato) perche' la periferica venga attivata.

    Deve essere quindi usato unicamente il controllo MSComm.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    137
    anche a me sembrava che la periferica comunicava col pc tramite la porta seriale ma dalla documentazione ho letto che il terminale viene collegato al pc tramite modem, cioe tramite il collegamento (modem punto punto) ecco perchè mi è venuto in mente winsock.
    pero ancora non sono riuscito a far comonocare il pc con il terminale se hai qualche idea te ne sarei grato se vuoi ti posso mandare tutto il manuale

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.