Moved remotely
git-svn-id: file:///srv/dev-disk-by-uuid-17e88007-4d0c-45e0-8757-cacfcc458630/repositories/svn/Diplomarbeit@113 9fe90eed-be63-e94b-8204-d34ff4c2ff93
This commit is contained in:
@@ -0,0 +1,217 @@
|
||||
/* ---------------------------------------------------------------------------
|
||||
* logging.c (c) 2008 Micro-key bv
|
||||
* ---------------------------------------------------------------------------
|
||||
* Micro-key bv
|
||||
* Industrieweg 28, 9804 TG Noordhorn
|
||||
* Postbus 92, 9800 AB Zuidhorn
|
||||
* The Netherlands
|
||||
* Tel: +31 594 503020
|
||||
* Fax: +31 594 505825
|
||||
* Email: support@microkey.nl
|
||||
* Web: www.microkey.nl
|
||||
* ---------------------------------------------------------------------------
|
||||
* Description: log driver
|
||||
* ---------------------------------------------------------------------------
|
||||
* Version(s): 0.1, Nov 28, 2008, MMi
|
||||
* Creation.
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
* System include files
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
/* Compiler includes */
|
||||
#include "string.h"
|
||||
|
||||
#include "LPC23xx.h"
|
||||
#include "types.h"
|
||||
|
||||
/* FreeRTOS includes */
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Application include files
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
#include "logging.h"
|
||||
#include "serial.h"
|
||||
#include "SerOut.h"
|
||||
|
||||
#include "fat_public.h"
|
||||
#include "fat_intern.h"
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Local constant and macro definitions
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Global variable definitions
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Local variable definitions
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
char returndate[12];
|
||||
char returntime[9];
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Local function definitions
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void enableLog (void)
|
||||
{
|
||||
LogFlag = TRUE;
|
||||
}
|
||||
|
||||
|
||||
void disableLog (void)
|
||||
{
|
||||
LogFlag = FALSE;
|
||||
}
|
||||
|
||||
|
||||
void startLog (UINT32 serialnumber)
|
||||
{
|
||||
char fileName[13];
|
||||
char fileExt[4] = ".txt";
|
||||
|
||||
sprintf (fileName, "%i", serialnumber); /* Convert INT-Value to DEZ-String */
|
||||
strncat (fileName, fileExt, 4);
|
||||
debugPrint ("\n\r");
|
||||
debugPrint (fileName);
|
||||
|
||||
FAT_StatusOut (f_open (&log_file, fileName, (FA_READ | FA_WRITE | FA_CREATE_ALWAYS)));
|
||||
}
|
||||
|
||||
|
||||
void stopLog (void)
|
||||
{
|
||||
FAT_StatusOut (f_sync (&log_file));
|
||||
FAT_StatusOut (f_close (&log_file));
|
||||
}
|
||||
|
||||
|
||||
void writeLog (t_logSource source, t_serial_devices ComPort, Messagetype_t urgency, char * Message)
|
||||
{
|
||||
UINT32 bytes_written;
|
||||
UINT32 string_length;
|
||||
char WriteBuffer[512];
|
||||
|
||||
if (LogFlag == TRUE)
|
||||
{
|
||||
|
||||
if (ComPort == COM1)
|
||||
{
|
||||
strcpy(WriteBuffer, "\nSerial Port: COM1\t");
|
||||
}
|
||||
else if (ComPort == COM2)
|
||||
{
|
||||
strcpy(WriteBuffer, "\nSerial Port: COM2\t");
|
||||
}
|
||||
|
||||
if (source == LogInput)
|
||||
{
|
||||
strcat(WriteBuffer, "Direction: Input\t");
|
||||
}
|
||||
else if (source == LogOutput)
|
||||
{
|
||||
strcat(WriteBuffer, "Direction: Output\t");
|
||||
}
|
||||
|
||||
switch (urgency)
|
||||
{
|
||||
case importantMessage:
|
||||
strcat(WriteBuffer, "Urgency: important Message\t");
|
||||
break;
|
||||
case headerMessage:
|
||||
strcat(WriteBuffer, "Urgency: header Message\t\t");
|
||||
break;
|
||||
case resultMessage:
|
||||
strcat(WriteBuffer, "Urgency: result Message\t\t");
|
||||
break;
|
||||
case noteMessage:
|
||||
strcat(WriteBuffer, "Urgency: note Message\t\t");
|
||||
break;
|
||||
case testMessage:
|
||||
strcat(WriteBuffer, "Urgency: test Message\t\t");
|
||||
break;
|
||||
case menuMessage:
|
||||
strcat(WriteBuffer, "Urgency: menu Message\t\t");
|
||||
break;
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
||||
// strcat(WriteBuffer, "\n");
|
||||
strcat(WriteBuffer, Message);
|
||||
|
||||
string_length = strlen(WriteBuffer);
|
||||
|
||||
f_write(&log_file, &WriteBuffer, string_length, &bytes_written);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void listLog (char* path)
|
||||
{
|
||||
UINT32 loopcnt;
|
||||
DIR directory;
|
||||
FILINFO fileinfo;
|
||||
|
||||
if (f_opendir(&directory, path) == FR_OK)
|
||||
{
|
||||
loopcnt = strlen(path);
|
||||
|
||||
sendString (SerOutPort, TRUE, importantMessage,
|
||||
"Content of ", path, ":\n\r");
|
||||
|
||||
while ((f_readdir(&directory, &fileinfo) == FR_OK) && fileinfo.fname[0])
|
||||
{
|
||||
sendString (SerOutPort, TRUE, importantMessage,
|
||||
f_tab, &fileinfo.fname[0], Dummy);
|
||||
sendString (SerOutPort, FALSE, importantMessage,
|
||||
f_tab, ItoDStr (fileinfo.fsize), Dummy);
|
||||
sendString (SerOutPort, FALSE, importantMessage,
|
||||
f_tab, formatFiledate (fileinfo.fdate), Dummy);
|
||||
sendString (SerOutPort, FALSE, importantMessage,
|
||||
f_tab, formatFiletime (fileinfo.ftime), Dummy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
char * formatFiledate (UINT16 date)
|
||||
{
|
||||
char date_devider = '-';
|
||||
|
||||
strcpy (returndate, ItoDStr (date & 0x0000001F));
|
||||
returndate[2] = date_devider;
|
||||
|
||||
strcat (returndate, ItoDStr ((date & 0x000001E0) >> 5));
|
||||
returndate[5] = date_devider;
|
||||
|
||||
strcat (returndate, ItoDStr (1980 + ((date & 0x0000FE00) >> 9)));
|
||||
returndate[10] = '\0';
|
||||
|
||||
return (returndate);
|
||||
}
|
||||
|
||||
|
||||
char * formatFiletime (UINT16 time)
|
||||
{
|
||||
char date_devider = ':';
|
||||
|
||||
strcpy (returntime, ItoDStr ((time & 0x0000F800) >> 11));
|
||||
returntime[2] = date_devider;
|
||||
|
||||
strcat (returntime, ItoDStr ((time & 0x000007E0) >> 5));
|
||||
returntime[5] = date_devider;
|
||||
|
||||
strcat (returntime, ItoDStr (2 * (time & 0x0000001F)));
|
||||
returntime[8] = '\0';
|
||||
|
||||
return (returntime);
|
||||
}
|
||||
Reference in New Issue
Block a user