Per quanto riguarda il file history binario:
negli ultimi 28 byte sono presenti le informazioni relative all'history da leggere.
io li leggo così:
Codice:
history.ExtendedProperties.Add(informazioni_history.Valore1, lettore.ReadUInt32());
history.ExtendedProperties.Add(informazioni_history.Pioggia_I, lettore.ReadSingle());
history.ExtendedProperties.Add(informazioni_history.Pioggia_II, lettore.ReadSingle());
history.ExtendedProperties.Add(informazioni_history.Valore2,lettore.ReadUInt32());
history.ExtendedProperties.Add(informazioni_history.Numero_Rilevazioni, lettore.ReadUInt32());
history.ExtendedProperties.Add(informazioni_history.Data_Inizio_Rilevazioni, uint_to_datetime(lettore.ReadUInt32()));
history.ExtendedProperties.Add(informazioni_history.Data_Fine_Rilevazioni, uint_to_datetime(lettore.ReadUInt32()));
history.ExtendedProperties.Add(informazioni_history.Percorso, nomefile);
Dei quali Valore1 e Valore2 non ho capito a cosa servono e non credo che occorre capirlo perchè sono sempre statici.
I due valori di pioggia rappresentano la pioggia totale se sommati tra di loro, allo stesso modo per salvare devi scomporre la pioggia totale secondo questi valori.
Questi due valori di pioggia sono spesso salvati da Heavy Weather in modo errato e causano la cosidetta "pioggia fantasma", molte volte il valore 2 è negativo..
per scriverli invece faccio così:
Codice:
scrittore.Write((uint)history.ExtendedProperties[informazioni_history.Sconosciuto1]);
scrittore.Write((float)history.ExtendedProperties[informazioni_history.Pioggia_Totale]);
scrittore.Write((float)history.ExtendedProperties[informazioni_history.Pioggia_Totale] - (float)history.ExtendedProperties[informazioni_history.Pioggia_II]);
scrittore.Write((uint)history.ExtendedProperties[informazioni_history.Sconosciuto2]);
scrittore.Write((uint)history.ExtendedProperties[informazioni_history.Numero_Rilevazioni]);
scrittore.Write(datetime_to_uint( (DateTime) history.ExtendedProperties[informazioni_history.Data_Inizio_Rilevazioni]));
scrittore.Write(datetime_to_uint((DateTime) history.ExtendedProperties[informazioni_history.Data_Fine_Rilevazioni]));
scrittore.Close();
return true;
Poi non devi far altro che riportarti all'inizio del file e leggere le righe che sono salvate una dopo l'altra.
Per leggere una riga devi leggere i seguenti valori:
Codice:
public uint sconosciuto;
public uint data;
public float pressione_assoluta;
public float velocità_vento;
public uint direzione_vento;
public float pioggia_assoluta;
public float temperatura_interna;
public float temperatura_esterna;
public ushort umidità_interna;
public ushort umidità_esterna;
Per salvare devi fare l'opposto.
spero di esserti stato utile
Segnalibri