Quote: //INITIALISATION// void closeWriteTextFile(); void writeNewLine(); void writeIntegerNumber(long nNumber); bool bFirstNumberOnLine = true; TFileIOResult nIoResult = ioRsltSuccess; TFileHandle hFileWriteHandle = NOT_A_HANDLE; string sFileName = "01FILE.dat"; int nNumber ; int nTime; int ClockTime; int xVal,yVal,zVal; tSensors myPort= S1; const int kMaxFileSize = 20000; byte replyMessage[6]; string sFileNameSearch; short nFileSizeSearch; short hFileHandleSearch; TFileIOResult nIoResultSearch;
//Sous-routine TITRE FICHIER TEXTE// void FileSearch() {
FindFirstFile(hFileHandleSearch, nIoResultSearch, "01FILE.dat", sFileNameSearch, nFileSizeSearch); if(nIoResultSearch == 0) {sFileName="02FILE.dat";}
FindFirstFile(hFileHandleSearch, nIoResultSearch, "02FILE.dat", sFileNameSearch, nFileSizeSearch); if(nIoResultSearch == 0) {sFileName="03FILE.dat";}
FindFirstFile(hFileHandleSearch, nIoResultSearch, "03FILE.dat", sFileNameSearch, nFileSizeSearch); if(nIoResultSearch == 0) {sFileName="04FILE.dat";}
FindFirstFile(hFileHandleSearch, nIoResultSearch, "04FILE.dat", sFileNameSearch, nFileSizeSearch); if(nIoResultSearch == 0) {sFileName="05FILE.dat";}
Close(hFileHandleSearch, nIoResultSearch);
nxtDisplayTextLine(0, sFileName); wait1Msec(1000);
}
//Sous-routine OUVERTURE FICHIER TEXTE// bool bOpenWriteTextFile(const string &sFileName, int nFileSize) { bFirstNumberOnLine = true; Delete(sFileName, nIoResult); OpenWrite(hFileWriteHandle, nIoResult, sFileName, nFileSize); return nIoResult == ioRsltSuccess; }
//Sous-routine FERMETURE FICHIER TEXTE// void closeWriteTextFile() { Close(hFileWriteHandle, nIoResult); hFileWriteHandle = NOT_A_HANDLE; }
//Sous-routine SAUT DE LIGNE// void writeNewLine() { WriteText(hFileWriteHandle, nIoResult, "\r\n"); bFirstNumberOnLine = true; return; }
//Sous-routine ESPACE// void writeDelimiterBetweenNumbers() { if (bFirstNumberOnLine) bFirstNumberOnLine = false; else WriteText(hFileWriteHandle, nIoResult, "\t"); return; }
//Sous-routine ECRITURE INTEGER// void writeIntegerNumber(long nNumber) { string sTemp; writeDelimiterBetweenNumbers(); StringFormat(sTemp, "%d", (long) nNumber); WriteText(hFileWriteHandle, nIoResult, sTemp); return; }
//Sous-routine ECRITURE FICHIER TEXTE// void WriteTextFile(int val) { nTime = time1[T1] / 100; writeIntegerNumber(nTime); writeDelimiterBetweenNumbers(); nNumber = val; writeIntegerNumber(nNumber); writeNewLine(); wait10Msec(10); }
//Sous-routine INIT TEXT// void InitTextFile() { ClearTimer(T1); nTime = 0; bOpenWriteTextFile(sFileName, kMaxFileSize); }
int readIC(tSensors port, int hexAdd) { typedef struct { byte nMsgSize; byte nDeviceAddress; byte nLocationPtr; byte nData; } TI2C_Output;
TI2C_Output sOutput;
sOutput.nMsgSize = 2; sOutput.nDeviceAddress = 0x02; sOutput.nLocationPtr = hexAdd; sOutput.nData = 0x00; SensorType[port] = sensorI2CCustomFast;
wait10Msec(5); nI2CBytesReady[port]=0; sendI2CMsg(port, sOutput.nMsgSize, 0); while(nI2CStatus[port]== STAT_COMM_PENDING) wait1Msec(2);
byte replyMessage[4];
nI2CBytesReady[port]=0;
sendI2CMsg(port,sOutput.nMsgSize ,4);
while (nI2CStatus[S1]==STAT_COMM_PENDING) wait1Msec(5);
if (nI2CStatus[port]==NO_ERR) { readI2CReply(port, replyMessage[0], 4);
int ret =(replyMessage[0]*4)+replyMessage[3];
if(ret > 511) ret -= 1024; return ret; } else { nxtDisplayTextLine(3, "i2c err %d", nI2CStatus[S1]); }
return 0; }
task main() { FileSearch(); InitTextFile();
while( nNxtButtonPressed == -1 ) { xVal = readIC(myPort, 0x42); nxtDisplayTextLine(4, "CAPTEUR #1: %d", xVal); ClockTime = time1[T1] / 1000; nxtDisplayTextLine(1, "TEMPS: %d sec", ClockTime); WriteTextFile(xVal); } eraseDisplay(); nxtDisplayTextLine(4,"FIN DU PROGRAMME"); wait10Msec(50); closeWriteTextFile(); }
|