modbusregset.cpp
来自「一个通讯管理机的源代码。比较好用。推荐」· C++ 代码 · 共 110 行
CPP
110 行
#include "modbusregset.h"bool CModbusRegDefSet::GetFirst(){ bool bRet = false; if ( GetFirstRecord() == XB_NO_ERROR ) { m_wRegAddr = GetLongField(localno); m_wDevID = GetLongField(devno); m_wMSDevID = GetLongField(msdevno); m_wArea = GetLongField(area); m_wLocalAddr = GetLongField(regaddr); m_strName = GetStringField(name); bRet = true; } return bRet;} bool CModbusRegDefSet::GetNext(){ bool bRet = false; if (GetNextRecord() == XB_NO_ERROR ) { m_wRegAddr = GetLongField(localno); m_wMSDevID = GetLongField(msdevno); m_wDevID = GetLongField(devno); m_wArea = GetLongField(area); m_wLocalAddr = GetLongField(regaddr); m_strName = GetStringField(name); bRet = true; } return bRet;} bool CModbusRegDefSet::GetFirst(WORD wArea){ bool bRet = false; if ( GetFirstRecord() == XB_NO_ERROR ) { do { m_wRegAddr = GetLongField(localno); m_wMSDevID = GetLongField(msdevno); m_wDevID = GetLongField(devno); m_wArea = GetLongField(area); m_wLocalAddr = GetLongField(regaddr); m_strName = GetStringField(name); } while ((m_wArea != wArea) && (GetNextRecord() == XB_NO_ERROR )); if (m_wArea == wArea) bRet = true; } return bRet;} bool CModbusRegDefSet::GetNext(WORD wArea){ bool bRet = false; if (GetNextRecord() == XB_NO_ERROR ) { do { m_wRegAddr = GetLongField(localno); m_wMSDevID = GetLongField(msdevno); m_wDevID = GetLongField(devno); m_wArea = GetLongField(area); m_wLocalAddr = GetLongField(regaddr); m_strName = GetStringField(name); } while ((m_wArea != wArea) && (GetNextRecord() == XB_NO_ERROR )); if (m_wArea == wArea) bRet = true; } return bRet;} short CModbusRegDefSet::Update(){ PutLongField(localno,m_wRegAddr); PutLongField(msdevno,m_wMSDevID); PutLongField(devno,m_wDevID); PutLongField(area,m_wArea); PutLongField(regaddr,m_wLocalAddr); PutField(name,m_strName.data()); return PutRecord(GetCurRecNo());}short CModbusRegDefSet::Add(){ BlankRecord(); /* blank out the record buffer */ PutLongField(localno,m_wRegAddr); PutLongField(devno,m_wDevID); PutLongField(area,m_wArea); PutLongField(regaddr,m_wLocalAddr); PutField(name,m_strName.data()); return AppendRecord();}void CModbusRegDefSet::DeleteAll(){ ExclusiveLock( F_SETLKW ); /* lock the files for our exclusive use */ while (GetFirst()) { DeleteRecord(); if (RecordDeleted()) PackDatabase(F_SETLKW); } ExclusiveUnlock(); /* unlock the files */}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?