+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Accodare velocemente un Array ad un altro Array

  1. #1
    Neway non è in linea Novello
    Come ho premesso nel messaggio di benvenuto, mi occupo di elettronica e programmazione di microcontrollori PIC per hobby. Avendo realizzato un datalogger con interfaccia USB mi trovo ora a dover creare un programmino in VB.NET per gestire il dispositivo e scaricare i dati tramite PC. Considerate che ho cominciato a programmare in VB.NET da sole due settimane, quindi non date nulla per scontato .

    Il problema è il seguente:
    I dati via USB arrivano a pacchetti da 64 byte (in totale devo ricevere 170 pacchetti). Vorrei mettere tutti i dati che arrivano dentro un array e accodare ogni nuovo pacchetto in fondo all'array. Visto che l'operazione deve essere abbastanza veloce per non perdere pacchetti in arrivo, volevo evitare dei cicli for che riempiono l'array principale un elemento alla volta. Come posso fare?

    Grazie e ciao
    Adriano

  2. #2
    Non so se ho capito bene.

    Tu hai già un ciclo che riceve dei dati a pacchetti da 64bytes, e vorresti stoccarli da qualche parte.

    Potresti usare o una Lista tipizzata, List(of Byte()) in cui salverai man mano i pacchetti ricevuti, oppure una Coda tipizzata, Queue(Of Byte())

    In questo modo potrai aggiungere pacchetto dopo pacchetto alla lista o alla coda

    Supponendo tu abbia un array di 64 bytes denonimato "Packet", per aggiungerlo alla lista o alla coda si userà:

    es Lista:
     
    Private lPackets as New List(of Byte())
     
    Sub.....
    ....   
    ....
       lPackets.Add(Packet)
    End Sub
    

    Es Coda:
    Private qPackets as New Queue(of Byte())
     
    Sub.....
    ....   
    ....
       qPackets.Enqueue(Packet)
    End Sub
    
    ℹ️ Leggi di più su Fix ...

  3. #3
    Neway non è in linea Novello
    Hai capito perfettamente!
    Neanche sapevo esistessero liste e code. Come dicevo ho buona esperienza in programmazione di PIC in cui si lavora a basso livello ma nulla in linguaggi per PC che sono molto più complessi e ricchi di istruzioni.
    Ora vedo di studiare un poco questi oggetti e vi faccio sapere come va.

    Grazie mille!

  4. #4
    Ricordati che il metodo di aggiunta non crea una nuova copia della matrice passata (packet), percui dovrai creare un nuovo packet da 64bytes per ogni aggiunta.

    Ciao
    ℹ️ Leggi di più su Fix ...

  5. #5
    Neway non è in linea Novello
    Ok. Mi hai detto una cosa importante.
    Grazie di nuovo.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Accodare dati ad altro database
    Da CESABAS nel forum Microsoft Access
    Risposte: 9
    Ultimo Post: 25-11-2019, 17:34
  2. [C/C++] Come accodare array numerici in modo veloce?
    Da michele bellingeri nel forum C/C++
    Risposte: 10
    Ultimo Post: 27-02-2011, 23:37
  3. Risposte: 3
    Ultimo Post: 12-05-2008, 20:47
  4. Risposte: 2
    Ultimo Post: 05-11-2005, 09:22
  5. Accodare valore in un array bidimens.
    Da maximum nel forum Visual Basic 6
    Risposte: 5
    Ultimo Post: 21-06-2005, 10:10