wiki:Docs/Prog/Manual/ApplicationLibraries/lib825ev/File/CFile

Version 8 (modified by Don Wilson, 14 years ago) ( diff )

--

CFile

CFile is a C++ class that is provided to simplify 825 file operations. CFile is a wrapper class around the standard C library FILE object. CFile also provides some useful features such as baud rate setting for the 825 serial ports.

Constructors

CFile(void);
CFile(const string& strFilename);
CFile(const char* pszfilename);

These constructors just create a CFile object without opening a file.

CFile(const string& strFilename, const string& strMode);
CFile(const string& strFilename, const char* pszMode);
CFile(const char* pszFilename, const string& strMode);
CFile(const char* pszFilename, const char* pszMode);

These constructors construct the file object and attempt to open the file.

Parameters

  • strFilename - filename
  • pszFilename - filename
  • strMode - mode
  • pszMode - mode

Examples

CFile fileLog("/mnt/fl1/log.txt", "a");
if(fileLog.IsOpen())
{
     fileLog.Print("Gross %s Tare %s Net %s\r\n", FormatGrossWt(1).c_str(), FormatTareWt(1).c_str(), FormatNetWt(1).c_str()); 
     fileLog.Close();
}
CFile fileLog("/mnt/fl1/log.txt");

This contructs the object to open later.

Member Functions

Open

Opens a specified file, or using the filename already stored in the object.

bool Open(const string& strFilename, const string& strMode);
bool Open(const string& strFilename, const char* pszMode);
bool Open(const char* pszFilename, const string& strMode);
bool Open(const char* pszFilename, const char* pszMode);
bool Open(const char* pszMode);

Parameters

  • strFilename - filename
  • pszFilename - filename
  • strMode - mode
  • pszMode - mode

Return Value

Returns true if successful or false if unsuccessful.

Remarks

Example

CFile file;
if(file.Open("/tmp/tmpfile", "w") == false)
{
    DisplayText(0, 0, "Error writing temporary file");
}

Close

Closes the file

void Close(void);

Parameters

Function does not accept any parameters

Result

Function does not return any result.

SetSerial

Set the baud rate, number of data bits, parity, and number of stop bits for serial ports.

bool SetSerial(baud_index baud, data_bit_index = data8, parity_index = parityNone, stop_bit_index = stopOne);

Parameters

  • baud_index
  • data_bit_index
  • parity_index
  • stop_bit_index

Return Value

Returns true if successful, false if not successful.

Remarks

Example

ReadLine

bool ReadLine(std::string& str);

DeleteFile

static bool DeleteFile(std::string& filepath);
static bool DeleteFile(const char* filepath);

bool DeleteFile(void);

IsReady

Check the state of the serial CTS input

bool IsReady(void);

Parameters

Function does not accept any parameters.

Return Value

Function returns true if CTS is active, false if CTS is inactive.

Remarks

IsReady() will return false if the CTS line is unconnected. Printers or other devices must be wired correctly for applications to be able to use this function to determine their readiness.

Example

CFile fileLogOutput("/dev/ttyS1", "w");
if(fileLogOutput.IsOpen())
{
   fileLogOutput.SetRTS(true);
   if(fileLogOutput.IsReady() == false)
   {
      DisplayText(0, 0, "Printer offline, or disconnected");
   }
}

SetRTS

Set the state of the serial RTS output

bool SetRTS(bool bRTSOn = true);

Parameters

  • bRTSOn - true to turn on RTS output, false to turn off RTS output

Return Value

Returns true if successfully set RTS state, false otherwise.

Remarks

Example

CFile fileLogOutput("/dev/ttyS1", "w");
fileLogOutput.SetRTS(true);

GetFile

FILE* GetFile(void);

Print

void Print(const std::string& fmt, ...);
void Print(const char * fmt, va_list& args);
void Print(const std::string& fmt, va_list& args);
void Print(const char * fmt, va_list& args);

SetNonBlocking

void SetNonBlocking(void);

Read

bool Read(void * ptr, size_t size);

Write

bool Write(void * buf, size_t size);

GetBytesRead

size_t GetBytesRead(void);

GetbytesWritten

size_t GetBytesWritten(void);

Seek

bool Seek(long int offset, long int origin = SEEK_SET);
Note: See TracWiki for help on using the wiki.