Salve a tutti, ho un sistema che è modellato in un ambiente di sviluppo che sfrutta la rappresentazione UML, ed è possibile anche simulare il sistema creato. Ho rappresentato questo sistema in questo ambiente attraverso dei blocchi (conteneti attributi e funzioni) che rappresentano dei componenti hardware. Ogni blocco è stato modellato tramite una macchina a stato(statechart) che svolge determinati controlli, ovviamente quando il sistema è in funzione, ogni blocco svolge determinate operazioni in parallelo ad altri. Vorrei realizzare un file log che registra tutti gli stati di ogni blocco ed eventuali errori generati dalle funzioni. In un primo momente ho provato a creare un file di testo creato in linguaggio C (fileLog.txt) dove ho scritto Tempo, Stato, Blocco; ossia in ogni stato ho inserito questo codice:
FILE * fileLog;
fileLog = fopen("fileLog.txt","a");
fprintf(fileLog,"|ControlloOra |LDiSelDelControllore | %u-%u-%u |\n",tm.wMinute,tm.wSecond,tm.wMilliseconds);
fclose (fileLog);
includendo nel blocco l'header <windows.h>.
Però mi sono accorto che non tutti gli stati venivano scritti sul file, perchè ogni stato di ogni macchina essendo eseguito in parallelo ed in tempi molto brevi non riescono a scrivere sullo stesso file.
1)Quindi avete una soluzione per questo problema?
2) per il tempo ho utilizzato la struttura SYSTEMTIME del C, c'è la possibilità di avere un unico numero (Timestamp) senza avere la divisione in anno,mese,giorno,ore,minuti,secondi e millisecondi?(Faccio notare che stò lavorando su un PC con windows XP, Visual studio 2008 e l'ambiente di sviluppo IBM Rational Rhapsody)
Grazie