AU SECOURS - TRES URGENT

Une question, un bug ?
Répondre
Pidou
Membre
Messages : 478
Inscription : dim. juil. 27, 2008 6:06 pm
Contact :

AU SECOURS - TRES URGENT

Message par Pidou »

Salut à tous,

J'en appelle à tous les utilisateur de VP2 Pro, et même à Antoine qui pourra peut être m'aider.
Suite à un plantage de mon PC, ce 1° Décembre, WeatherLink ET GraphWeather ne lisent plus les données dans mon fichier de Novembre 2010 (2010-11.wlk).
Pourtant ce fichier existe bien et a la taille normale.

Je pense qu'il y a eu un bug d'enregistrement.
Quelqu'un peut il m'aider pour rendre mes données accessibles, car du coup toutes les stats du mois de Novembre risquent de se perdre.
Ce qui m'inquiète plus c'est que je ne sais pas comment éviter que ça se reproduise.
Ma station => http://www.meteo-boisney.fr
Image
--- Station Vantage Pro 2 - Plugin VantagePro.dll ---
--- GraphWeather Version 2.0.312b ---
Avatar de l’utilisateur
TiToine
Site Admin
Messages : 3356
Inscription : lun. mars 20, 2006 11:16 am
Localisation : Montréal
Contact :

Re: AU SECOURS - TRES URGENT

Message par TiToine »

Poste le fichier sur le forum, j'essaierai de regarder ca.
Il est probablement corrompu...et probablement perdu...
Pidou
Membre
Messages : 478
Inscription : dim. juil. 27, 2008 6:06 pm
Contact :

Re: AU SECOURS - TRES URGENT

Message par Pidou »

Merci beaucoup Antoine.
Aller j'y crois encore...

Je t'envoie le fichier par mail car il est trop gros pour le forum.
Ma station => http://www.meteo-boisney.fr
Image
--- Station Vantage Pro 2 - Plugin VantagePro.dll ---
--- GraphWeather Version 2.0.312b ---
Avatar de l’utilisateur
TiToine
Site Admin
Messages : 3356
Inscription : lun. mars 20, 2006 11:16 am
Localisation : Montréal
Contact :

Re: AU SECOURS - TRES URGENT

Message par TiToine »

Tous les headers (il y en a un par jour) du fichiers sont corrompus sauf le premier. Par contres les données semblent encore là...
Il faut écrire un programme pour récupérer ce qu'on peut...c'est au moins 2-3 h de boulot.
Bref moi j'ai pas le temps pour le moment...peut être dans quelques semaines.
Pidou
Membre
Messages : 478
Inscription : dim. juil. 27, 2008 6:06 pm
Contact :

Re: AU SECOURS - TRES URGENT

Message par Pidou »

Ben déjà merci beaucoup Antoine pour le temps passé.
Du coup je me dis qu'il a une piste pour récupérer quelque chose.
Je n'ai aucune idée de la structure des fichiers wlk, si tu as un petit doc qui décrit ça, je pourrai déjà jeter un oeil avec mes notions (bien modeste certes), mais je peux toujours essayer.
Si je ne m'en sors pas, ben je serai heureux de ton aide quand tu auras du temps.

Merci beaucoup encore
Ma station => http://www.meteo-boisney.fr
Image
--- Station Vantage Pro 2 - Plugin VantagePro.dll ---
--- GraphWeather Version 2.0.312b ---
Avatar de l’utilisateur
TiToine
Site Admin
Messages : 3356
Inscription : lun. mars 20, 2006 11:16 am
Localisation : Montréal
Contact :

Re: AU SECOURS - TRES URGENT

Message par TiToine »

La structure est décrite plus bas. En gros tu as ca dans le fichier:
HEADER
DAILYSUMMARY1
DAILYSUMMARY2
DATARECORD
DAILYSUMMARY1
DAILYSUMMARY2
DATARECORD
....
DAILYSUMMARY1
DAILYSUMMARY2
DATARECORD
Dans le header tu trouves pour chaque jours (table DAYINDEX) le pointeur qui te positionne sur le premier enregistrement du jour (startPos) et le nombre d'enregistrement pour ce jour (recordsInDay).
Un enregistrement correspond à 3 blocs de données DAILYSUMMARY1, DAILYSUMMARY2, DATARECORD.
Le pointer (startPos) correspond à un nombre d'enregistrement après le header. Ex: startPos = 1532 donne le premier enregistrement du jour à ((taille header) + 1532 X (taille des 3 blocs)) octets depuis le début du fichier.

Dans ton fichier, pour le premier jour, le startPos est correct. En revanche pour les jours suivant le startPos est toujours nul.
L'idée est de scanner le fichier pour détecter les transitions DATARECORD.packedTime = 0. Ça va t'indiquer (à mon sens) que le DATARECORD que tu es en train de lire est le premier enregistrement du jour. Tu peux ainsi recalculer facilement l'index corrompu startPos (et recordsInDay) et le mettre à jour.

Antoine.

Code : Tout sélectionner


typedef struct _DAYINDEX
{
	short   recordsInDay;				// includes any daily summary records
	USHORT  startPos;				    // The index (starting at 0) of the first daily summary record
	short   reserved;					// index is short or long ?? don't know...
} 
DAYINDEX; 

// Header for each monthly file.
typedef struct _HEADERBLOCK
{ 
   char         idCode [16];			// = {'W', 'D', 'A', 'T', '5', '.', '0', 0, 0, 0, 0, 0, 0, 0, 5, 0}
   long         totalRecords;
   DAYINDEX     dayIndex[32];			// index records for each day. Index 0 is not used
									    // (i.e. the 1'st is at index 1, not index 0)
} 
HEADERBLOCK;

// Daily Summary Record 1
typedef struct _DAILYSUMMARY1
{
   BYTE     dataType ;					//=2
   BYTE     reserved;					// this will cause the rest of the fields to start on an even address

   short    dataSpan;					// total # of minutes accounted for by physical records for this day
   short    hiOutTemp, lowOutTemp;		// tenths of a degree F
   short    hiInTemp, lowInTemp;		// tenths of a degree F
   short    avgOutTemp, avgInTemp;		// tenths of a degree F (integrated over the day)
   short    hiChill, lowChill;			// tenths of a degree F
   short    hiDew, lowDew;				// tenths of a degree F
   short    avgChill, avgDew;			// tenths of a degree F 
   short    hiOutHum, lowOutHum;		// tenths of a percent
   short    hiInHum, lowInHum;			// tenths of a percent
   short    avgOutHum;					// tenths of a percent
   short    hiBar, lowBar;				// thousanths of an inch Hg
   short    avgBar;					    // thousanths of an inch Hg
   short    hiSpeed, avgSpeed;			// tenths of an MPH
   short    dailyWindRunTotal;			// 1/10'th of an mile 
   short    hi10MinSpeed;				// the highest average wind speed record 
   BYTE     dirHiSpeed, hi10MinDir;	    // direction code (0-15, 255)
   short    dailyRainTotal;			    // 1/1000'th of an inch
   short    hiRainRate;				    // 1/100'th inch/hr ???
   short    dailyUVDose;				// 1/10'th of a standard MED
   BYTE     hiUV;						// tenth of a UV Index
   BYTE     timeValues[27];				// space for 18 time values (see below)
} 
DAILYSUMMARY1;  

// Daily Summary Record 1
typedef struct _DAILYSUMMARY2
{
   BYTE     dataType;					// = 3;
   BYTE     reserved;					// this will cause the rest of the fields to start on an even address
									    // this field is not used now.
   unsigned short todaysWeather;	    // bitmapped weather conditions (Fog, T-Storm, hurricane, etc)

   short    numWindPackets;			    // # of valid packets containing wind data,this is used to indicate reception quality
   short    hiSolar;					// Watts per meter squared
   short    dailySolarEnergy;			// 1/10'th Ly
   short    minSunlight;				// number of accumulated minutes where the avg solar rad > 150
   short    dailyETTotal;				// 1/1000'th of an inch
   short    hiHeat, lowHeat;			// tenths of a degree F
   short    avgHeat;					// tenths of a degree F
   short    hiTHSW, lowTHSW;			// tenths of a degree F
   short    hiTHW, lowTHW;				// tenths of a degree F
   short    integratedHeatDD65;		    // integrated Heating Degree Days (65F threshold), tenths of a degree F - Day
									    // Wet bulb values are not calculated
   short    hiWetBulb, lowWetBulb;		// tenths of a degree F
   short    avgWetBulb;				    // tenths of a degree F
   BYTE     dirBins[24];				// space for 16 direction bins (Used to calculate monthly dominent Dir)
   BYTE     timeValues[15];				// space for 10 time values (see below)
   short    integratedCoolDD65;		    // integrated Cooling Degree Days (65F threshold), tenths of a degree F - Day
   BYTE     reserved2[9];
} 
DAILYSUMMARY2;

// standard archive record
typedef struct _DATARECORD
{
   BYTE     dataType ;					//=1
   BYTE     archiveInterval;			// number of minutes in the archive

   BYTE     iconFlags;					// Icon associated with this record, plus Edit flags
   BYTE     moreFlags;					// Tx Id, etc.

   short    packedTime;				    // minutes past midnight of the end of the archive period
   short    outsideTemp;				// tenths of a degree F
   short    hiOutsideTemp;				// tenths of a degree F
   short    lowOutsideTemp;			    // tenths of a degree F
   short    insideTemp;				    // tenths of a degree F
   short    barometer;					// thousanths of an inch Hg
   short    outsideHum;				    // tenths of a percent
   short    insideHum;					// tenths of a percent
   unsigned short rain;				    // number of clicks + rain collector type code
   short    hiRainRate;				    // clicks per hour
   short    windSpeed;					// tenths of an MPH
   short    hiWindSpeed;				// tenths of an MPH
   BYTE     windDirection;				// direction code (0-15, 255)
   BYTE     hiWindDirection;			// direction code (0-15, 255)
   short    numWindSamples;			    // number of valid ISS packets containing wind data
									    // this is a good indication of reception 
   short    solarRad, hisolarRad;		// Watts per meter squared 
   BYTE     UV, hiUV;					// tenth of a UV Index

   BYTE     leafTemp[4];				// (whole degrees F) + 90
   
   short    newSensors[7];				// reserved for future use
   BYTE     forecast;					// forecast code during the archive interval

   BYTE     ET;						    // in thousanths of an inch
   
   BYTE     soilTemp[6];				// (whole degrees F) + 90
   BYTE     soilMoisture[6];			// centibars of dryness
   BYTE     leafWetness[4];				// Leaf Wetness code (0-15, 255)
   BYTE     extraTemp[7];				// (whole degrees F) + 90
   BYTE     extraHum[7];				// whole percent
} 
DATARECORD;
Pidou
Membre
Messages : 478
Inscription : dim. juil. 27, 2008 6:06 pm
Contact :

Re: AU SECOURS - TRES URGENT

Message par Pidou »

Bonjour Antoine,

Merci pour tous ces détails,
Je comprends la structure et l'organisation de tout ça.
J'espèrais naïvement que tous les HEADER pour tous les mois de Novembre de la création étaient identiques et que ça me simplifierai la vie... Bon visiblement ce n'est pas le cas...
Je vais donc me creuser un peu plus les méninges :lol:
Ma station => http://www.meteo-boisney.fr
Image
--- Station Vantage Pro 2 - Plugin VantagePro.dll ---
--- GraphWeather Version 2.0.312b ---
Pidou
Membre
Messages : 478
Inscription : dim. juil. 27, 2008 6:06 pm
Contact :

Re: AU SECOURS - TRES URGENT

Message par Pidou »

Suite des évènements...

Après de longues heures de creusage de neurones (merci la gastro pour m'avoir bloqué à la maison :lol:), j'ai réussi à restaurer mon fichier wlk de Novembre. 8) 8) 8)

En fait, tous les mois de 30 jours complets ont bien tous le même HEADER. Donc après mettre remis à l'hexadécimal avec un petit éditeur de base et beaucoup de concentration, ça a marché !
Logique me direz-vous... C'est ce que je me disais aussi... Même nombre de jour + même fréquence d'enregistrement = même longueur de bloc... Mais après le premier essai, ça ne marchait pas... à cause d'une toute petite erreur de copie de ma part :?

Bon maintenant ça marche... Enfin presque... Eh oui, il a toujours un hic...
1. WeatherLink lit bien le fichier et toutes les données, et j'ai pu recréer les fichiers NOAA qui avaient été complétés sans le mois de Novembre (oui je sais c'est pas bien j'utilise ceux de WL et pas ceux de GW :oops: )
2. Mais GraphWeather ne veut pas lire le fichier réparé :( Et là, je séche... je vois pas pourquoi...

En tout cas, merci Antoine pour ton aide et Jean pour ton message (mais mes notions en VB sont trop vieilles pour que cela m'ait vraiment aider :lol: ). Me voilà déjà soulagé d'un gros poids.

Antoine si tu as une piste pour GW, je reste preneur. Les stats n'étaient pas perdues donc même si GW ne lit pas le fichier dans l'immédiat ce n'est pas un problème.
Ma station => http://www.meteo-boisney.fr
Image
--- Station Vantage Pro 2 - Plugin VantagePro.dll ---
--- GraphWeather Version 2.0.312b ---
Avatar de l’utilisateur
TiToine
Site Admin
Messages : 3356
Inscription : lun. mars 20, 2006 11:16 am
Localisation : Montréal
Contact :

Re: AU SECOURS - TRES URGENT

Message par TiToine »

Je pense que le fichier est toujours corrompu. Envoie le moi et je vais voir ce qui cloche.
Pidou
Membre
Messages : 478
Inscription : dim. juil. 27, 2008 6:06 pm
Contact :

Re: AU SECOURS - TRES URGENT

Message par Pidou »

OK je te mail le fichier "semi-réparé" lu par WL et pas par GW
Ma station => http://www.meteo-boisney.fr
Image
--- Station Vantage Pro 2 - Plugin VantagePro.dll ---
--- GraphWeather Version 2.0.312b ---
Avatar de l’utilisateur
TiToine
Site Admin
Messages : 3356
Inscription : lun. mars 20, 2006 11:16 am
Localisation : Montréal
Contact :

Re: AU SECOURS - TRES URGENT

Message par TiToine »

Le fichier fonctionne chez moi. Il faut qu'il soit nommé 2010-11.wlk.
Pidou
Membre
Messages : 478
Inscription : dim. juil. 27, 2008 6:06 pm
Contact :

Re: AU SECOURS - TRES URGENT

Message par Pidou »

Oui c'est bien ce que j'ai fait.
Bon je vais fouiller un peu. Peut être faut il que je régérène la base de données ?
Ce serait étonnant, mais qu'en penses tu ?
Ma station => http://www.meteo-boisney.fr
Image
--- Station Vantage Pro 2 - Plugin VantagePro.dll ---
--- GraphWeather Version 2.0.312b ---
Avatar de l’utilisateur
MAGNUS
Membre
Messages : 992
Inscription : dim. mars 26, 2006 4:44 pm
Localisation : VIDAUBAN (83) FRANCE
Contact :

Re: AU SECOURS - TRES URGENT

Message par MAGNUS »

Pidou a écrit :Oui c'est bien ce que j'ai fait.
Bon je vais fouiller un peu. Peut être faut il que je régérène la base de données ?
Ce serait étonnant, mais qu'en penses tu ?
Bonjour,
Quant on modifie un fichier d'une station, il faut systématiquement régénérer la base de données de Graphweather.
Cordialement.
Station WMR 200 avec XNet_meteo V 2014-10-29a Logiciels:Graphweather V 3.0.16, Noaa Template2, Windows 7
Mon abri météo ici :http://www.vardecouverte.fr/sta%20bc2008.htm
Site Web : http://www.vardecouverte.fr
Image
Pidou
Membre
Messages : 478
Inscription : dim. juil. 27, 2008 6:06 pm
Contact :

Re: AU SECOURS - TRES URGENT

Message par Pidou »

Bonjour,

Rien à faire, GW ne lis pas le fichier corrigé. Lorsque je fais défiler la date dans un onglet de GW le mois de Novembre reste vierge.
Ce n'est pas très grave en soit (vu que WL le lis très bien), mais du coup j'ai peur de régénérer la base de données Statistiques, de peur que ça crée une perte de données ou un plantage de GW.

Antoine, qu'en penses tu ?
Ma station => http://www.meteo-boisney.fr
Image
--- Station Vantage Pro 2 - Plugin VantagePro.dll ---
--- GraphWeather Version 2.0.312b ---
Répondre