ferentarius Inserito: 7 gennaio 2013 Segnala Inserito: 7 gennaio 2013 Ciao a tutti, solitamente quando usavo un DB ad indirizzamento assoluto mi trovavo di fronte a questa situazione. Ho un DB per gestire una cinquantina di allarmi (bool). Per verificare se sono in una situazione generica di allarme (almeno uno di questi 50 alzato) andavo a confrontare in OR tutte le double word che componevano il DB, riuscivo cosi con poco codice (due confronti a 0 di due DWord dove erano contenuti tutti i 50 allarmi) ad ottenere quello che volevo. Mi domandavo ora come posso fare utilizzando un DB simile ma indirizzato simbolicamente (o ottimizzato). Sono costretto a confrontare 50 bool per sapere se sono in una situazione di allarme o esiste una maniera piu intelligente? Grazie e ciao. Fere.
ferentarius Inserita: 14 gennaio 2013 Autore Segnala Inserita: 14 gennaio 2013 Ho chiamato l'. della Siemens e mi hanno detto che l'unica possibilità è dichiarare il DB NON ottimizzato, ma standard (per 300 e 400) cosi da poter utilizzare le doubleword per racchiudere 32bool e fare meno confronti. Peccato, speravo in una soluzione un pò più intelligente.
Frank681 Inserita: 14 gennaio 2013 Segnala Inserita: 14 gennaio 2013 Non vedo la difficolta effettIvamente un db standard ti da la compatibilita 300 e 400 per cui se sviluppi su piu piattaforme puoi mettertelo in libreria.
rampikandre Inserita: 21 gennaio 2013 Segnala Inserita: 21 gennaio 2013 Ciao, puoi anche fare così: creare una variabile DWord, anche simbolica, (chiamiamola allarmi), poi usi la variabile allarmi come DWord nei confronti per vedere se hai un bit alto. Per vedere i singnoli bit devi usare questa dicitura: nomeDB.allarmi.x0 per il primo bit .x1 per il secondo e così via. L'aspetto negativo di questo modo è che perdi il simbolico sui bit. La stessa cosa la puoi usare anche con i byte (, con le word (w) Spero di esserti stato utile Ciao
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora