⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inifile.cpp

📁 基于单片机的 snmp协议解析的一些原代码 给有用的 同行
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <string>
using namespace std;
#include <vcl\vcl.h>
#pragma hdrstop

#include "iniFile.h"
//---------------------------------------------------------------------------
IniFile::IniFile()
{
	deviceType = DEFAULT_DEVICE_TYPE;
    serialPort.assign(DEFAULT_SERIAL_PORT);
    serialBaudRate = DEFAULT_SERIAL_BAUD_RATE;
    timeout = DEFAULT_TIMEOUT;
    phoneNumber.assign(DEFAULT_PHONE_NUMBER);
    emulationMode = DEFAULT_EMULATION_MODE;
    CHAPSecret.assign(DEFAULT_SECRET);
}
IniFile::~IniFile()
{
	WriteParamFile();
}
bool IniFile::LoadParams()
{
	char temp[256];

	filePtr.open(INI_FILE_NAME, ios::in); //Cbuilder3 | ios::nocreate);
    if(filePtr.fail())
    	return false;
    memset(temp, 0, 256);
    filePtr.getline((char *)temp, 256, '\n');
    SetDeviceType(temp);
    memset(temp, 0, 256);
    filePtr.getline((char *)temp, 256, '\n');
    SetSerialPort(temp);
    memset(temp, 0, 256);
    filePtr.getline((char *)temp, 256, '\n');
    SetSerialBaudRate(temp);
    memset(temp, 0, 256);
    filePtr.getline((char *)temp, 256, '\n');
    SetTimeout(temp);
    memset(temp, 0, 256);
    filePtr.getline((char *)temp, 256, '\n');
    SetPhoneNumber(temp);
    memset(temp, 0, 256);
    filePtr.getline((char *)temp, 256, '\n');
    SetEmulationMode(temp);
    memset(temp, 0, 256);
    filePtr.getline((char *)temp, 256, '\n');
    SetCHAPSecret(temp);
    filePtr.close();
    return true;
}
long IniFile::GetDeviceType()
{
	return deviceType;
}
string IniFile::GetSerialPort()
{
	return serialPort;
}
short IniFile::GetSerialBaudRate()
{
	return serialBaudRate;
}
short IniFile::GetTimeout()
{
	return timeout;
}
string IniFile::GetPhoneNumber()
{
	return phoneNumber;
}
long IniFile::GetEmulationMode()
{
	return emulationMode;
}
string IniFile::GetCHAPSecret()
{
	return CHAPSecret;
}
void IniFile::SetDeviceType(long theDeviceType)
{
	deviceType=theDeviceType;
}
void IniFile::SetDeviceType(char *theDeviceType)
{
    if(!strncmp(theDeviceType, "SERIAL", 6))
    	deviceType=SERIAL_DEVICE;
    else if (!strncmp(theDeviceType, "MODEM", 5))
    	deviceType=MODEM_DEVICE;
    else if (!strncmp(theDeviceType, "NETWORK", 7))
    	deviceType=NETWORK_DEVICE;
    else
    	deviceType=SERIAL_DEVICE;
}
void IniFile::SetSerialPort(string theSerialPort)
{
	serialPort=theSerialPort;
}
void IniFile::SetSerialPort(char *theSerialPort)
{
	serialPort.assign(theSerialPort);
}
void IniFile::SetSerialBaudRate(short theSerialBaudRate)
{
	serialBaudRate = theSerialBaudRate;
}
void IniFile::SetSerialBaudRate(char *theSerialBaudRate)
{
	serialBaudRate = atoi(theSerialBaudRate);
}
void IniFile::SetTimeout(short theTimeout)
{
	timeout = theTimeout;
}
void IniFile::SetTimeout(char *theTimeout)
{
	timeout = atoi(theTimeout);
}
void IniFile::SetPhoneNumber(string thePhoneNumber)
{
	phoneNumber = thePhoneNumber;
}
void IniFile::SetPhoneNumber(char *thePhoneNumber)
{
	phoneNumber.assign(thePhoneNumber);
}
void IniFile::SetEmulationMode(char *theEmulationMode)
{
	if (!strncmp(theEmulationMode, "FIELD", 5))
       	emulationMode = EMULATE_FIELD_DEVICE;
    else
        emulationMode = EMULATE_CENTRAL_SYSTEM; // default mode
}
void IniFile::SetEmulationMode(long theEmulationMode)
{
	if((emulationMode==EMULATE_FIELD_DEVICE) ||
    	(emulationMode == EMULATE_CENTRAL_SYSTEM))
		emulationMode = theEmulationMode; // default mode
}
void IniFile::SetCHAPSecret(char *theSecret)
{
	CHAPSecret.assign(theSecret);
}
bool IniFile::WriteParamFile()
{
	char temp[10]="";

    filePtr.open(INI_FILE_NAME, ios::out | ios::trunc);
    if(deviceType == MODEM_DEVICE)
    	filePtr.write("MODEM\n", 6);
    else if(deviceType == SERIAL_DEVICE)
    	filePtr.write("SERIAL\n", 7);
    else
    	filePtr.write("NETWORK\n", 8);
    filePtr.write(serialPort.c_str(), serialPort.length());
    filePtr.write("\n", 1);
    itoa(serialBaudRate, temp, 10);
    filePtr.write(temp, strlen(temp));
    filePtr.write("\n",1);
    memset(temp, 0,10);
    itoa(timeout, temp, 10);
    filePtr.write(temp, strlen(temp));
    filePtr.write("\n",1);
    filePtr.write(phoneNumber.c_str(), phoneNumber.length());
    filePtr.write("\n", 1);
    if (emulationMode == EMULATE_FIELD_DEVICE)
    	filePtr.write("FIELD\n",6);
    else
    	filePtr.write("CENTRAL\n",8);
    filePtr.write(CHAPSecret.c_str(), CHAPSecret.length());
    filePtr.write("\n", 1);
    filePtr.close();
	return true;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -