none
Programmatore RFID RRS feed

  • Domanda

  • Salve a tutti e ben risentiti. Sto usando VS Community 2019. Ho un problema veramente anomalo. Praticamente una funzione su un altra macchina(quella del cliente) funziona correttamente con lo stesso IDE e sul mio PC no. Poi c'è da dire che ho un' altro applicativo sul mio PC in VS2017 Community che legge correttamente il mio programmatore RFID, quindi non è un problema di collegamento. La funzione è la opencomport che usa queste librerie RRU9816.DLL. Intanto vi inoltro anche la funzione:

    int portNum = ComboBox_COM.SelectedIndex + 1;
                int FrmPortIndex = 0;
                string strException = string.Empty;
                fBaud = Convert.ToByte(ComboBox_baud2.SelectedIndex);
                if (fBaud > 2)
                    fBaud = Convert.ToByte(fBaud + 2);
                fComAdr = 255;
                fCmdRet = RWDev.OpenComPort(portNum, ref fComAdr, fBaud, ref FrmPortIndex);
                MessageBox.Show("Porta: " + portNum + "fbaud" + fBaud + " fcmdret " + fCmdRet);
                if (fCmdRet != 0)
                {
                    string strLog = "Connect failed: " + GetReturnCodeDesc(fCmdRet);
                    MessageBox.Show(strLog);
                    return;
                }
                else
                {
                    frmcomportindex = FrmPortIndex;
                    string strLog = "Connected " + ComboBox_COM.Text + "@" + ComboBox_baud2.Text;
                    MessageBox.Show(strLog);
                }

    Il problema è che la opencomport in caso di successo dovrebbe tornare 0. Nel PC del cliente lo stesso progetto senza alcuna modifica di codice funziona.

    Cosa devo correggere? Sto impazzendo


    martedì 20 luglio 2021 16:24

Risposte

Tutte le risposte

  • Se il codice nel PC del cliente funziona, l'unica possibilità è che il numero della porta, in cui è collegato l'RFID nel tuo PC, è diverso da quello del cliente.


    martedì 20 luglio 2021 18:29
  • è strano, ma non è così. nel mio PC la porta è la 7, e la calcolo prelevando l Index + 1 da una select. Tramite un breakpoint vedo che il risultato di portNum è 7, quindi è corretto

    Sembra tutto corretto. ma la funzione come risultato rida 48 e non 0. questo è il problema. Il cliente si attacca alla porta 3 e funziona correttamente

    Saluti

    martedì 20 luglio 2021 18:52
  • ...io non conosco quella libreria che il tuo software usa per aprire le porte COM, però potrebbe essere qualche altro parametro (parità, bit di stop, controllo flusso) che nel pannello delle opzioni delle seriali del tuo PC è diverso (sempre che la funzione OpenComPort non li sovrascriva quando viene chiamata). Oppure potresti provare a cambiare il numero della porta COM, passandolo a 3.


    martedì 20 luglio 2021 19:43
  • Non è che sul tuo PC la com è già occupata?

    Prova banalmente ad aprirla con un oggetto SerialPort.

    Vedi se funziona.


    • Modificato marko_mm martedì 20 luglio 2021 21:11
    martedì 20 luglio 2021 21:09
  • Rispondo ad entrambi. Per marko_mm il controllo sulla porta seriale lo faccio con isOpen all apertura del programma e l if da valore true quindi risulta aperta.

    Per fabiocaruso dico che mi avevano dato un altro applicativo in VS2017 in cui il tutto funziona correttamente con all incirca lo stesso codice. Però se il codice che ho scritto sarebbe sbagliato non dovrebbe funzionare neanche al cliente 

    mercoledì 21 luglio 2021 08:02
  • Risolto ragazzi. Era questo codice sul load del form principale che creava problemi

    RFID.BaudRate = 9600;
                RFID.DataBits = 8;
                RFID.Parity = Parity.None;
                RFID.StopBits = StopBits.One;
                RFID.Open();
                RFID.ReadTimeout = 200;
                if (RFID.IsOpen)
                {
                    MessageBox.Show("Porta Aperta");
                }
                else
                {
                    RFID.Close();
                }
    Solo per me però, al PC del cliente no

    mercoledì 21 luglio 2021 09:51
  • Ok grazie dell'avviso!

    Se vuoi condividi pure il codice con cui hai risolto il problema, potrebbe sempre tornare utile a qualcuno.

    mercoledì 21 luglio 2021 10:01
  • Praticamente non bisogna inserire il codice che ho impostato sopra sul Load del form di avvio altrimenti vengono calcolati male i return ed i parametri delle funzioni del programmatore RFID

    mercoledì 21 luglio 2021 10:46