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

📄 modbusm.hpp

📁 delphi实现的MODBUS主站程序
💻 HPP
字号:
// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ModbusM.pas' rev: 5.00

#ifndef ModbusMHPP
#define ModbusMHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Forms.hpp>	// Pascal unit
#include <ExtCtrls.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Modbusm
{
//-- type declarations -------------------------------------------------------
typedef DynamicArray<Byte >  TDataByte;

typedef Byte *PByte;

#pragma option push -b-
enum TComPortBaudRate { br110, br300, br600, br1200, br2400, br4800, br9600, br14400, br19200, br38400, 
	br56000, br57600, br115200, br128000, br256000 };
#pragma option pop

#pragma option push -b-
enum TComPortNumber { pnCOM1, pnCOM2, pnCOM3, pnCOM4 };
#pragma option pop

#pragma option push -b-
enum TComPortDataBits { db5BITS, db6BITS, db7BITS, db8BITS };
#pragma option pop

#pragma option push -b-
enum TComPortStopBits { sb1BITS, sb1HALFBITS, sb2BITS };
#pragma option pop

#pragma option push -b-
enum TComPortParity { ptNONE, ptODD, ptEVEN, ptMARK, ptSPACE };
#pragma option pop

#pragma option push -b-
enum TComPortHwHandshaking { hhNONE, hhRTSCTS };
#pragma option pop

#pragma option push -b-
enum TComPortSwHandshaking { shNONE, shXONXOFF };
#pragma option pop

class DELPHICLASS TModbusM;
class PASCALIMPLEMENTATION TModbusM : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	Extctrls::TTimer* FTimer;
	Classes::TNotifyEvent FResponseReady;
	Classes::TNotifyEvent FOnError;
	Byte FSlaveId;
	Byte FFunction;
	Word FOffset;
	Word FQuantity;
	Byte FRegisterDim;
	Byte FError;
	bool FBusy;
	unsigned FComPortHandle;
	DynamicArray<Byte >  FReadValues;
	DynamicArray<Byte >  FWriteValues;
	TComPortNumber FComPort;
	TComPortBaudRate FComPortBaudRate;
	TComPortDataBits FComPortDataBits;
	TComPortStopBits FComPortStopBits;
	TComPortParity FComPortParity;
	TComPortHwHandshaking FComPortHwHandshaking;
	TComPortSwHandshaking FComPortSwHandshaking;
	Word FComPortInBufSize;
	Word FComPortOutBufSize;
	Word FComPortPollingDelay;
	bool FEnableDTROnOpen;
	Word FOutputTimeout;
	HWND FNotifyWnd;
	void *FTempInBuffer;
	Word FTimeout;
	void __fastcall SetComHandle(unsigned Value);
	void __fastcall SetComPort(TComPortNumber Value);
	void __fastcall SetComPortBaudRate(TComPortBaudRate Value);
	void __fastcall SetComPortDataBits(TComPortDataBits Value);
	void __fastcall SetComPortStopBits(TComPortStopBits Value);
	void __fastcall SetComPortParity(TComPortParity Value);
	void __fastcall SetComPortHwHandshaking(TComPortHwHandshaking Value);
	void __fastcall ApplyCOMSettings(void);
	void __fastcall TimerWndProc(Messages::TMessage &msg);
	void __fastcall Response(System::TObject* Sender, void * DataPtr, int DataSize);
	void __fastcall OnTimeout(System::TObject* Sender);
	void __fastcall FlushBuffers(bool inBuf, bool outBuf);
	Word __fastcall OutFreeSpace(void);
	int __fastcall SendData(void * DataPtr, int DataSize);
	
public:
	__property TDataByte WriteValues = {read=FWriteValues, write=FWriteValues};
	__property TDataByte ReadValues = {read=FReadValues};
	__property Byte Error = {read=FError, nodefault};
	__property bool Busy = {read=FBusy, nodefault};
	void __fastcall Query(void);
	__fastcall virtual TModbusM(Classes::TComponent* AOwner);
	__fastcall virtual ~TModbusM(void);
	__property unsigned ComHandle = {read=FComPortHandle, write=SetComHandle, nodefault};
	bool __fastcall Connect(void);
	void __fastcall Disconnect(void);
	bool __fastcall Connected(void);
	
__published:
	__property TComPortNumber ComPort = {read=FComPort, write=SetComPort, default=1};
	__property TComPortBaudRate ComPortSpeed = {read=FComPortBaudRate, write=SetComPortBaudRate, default=6
		};
	__property TComPortDataBits ComPortDataBits = {read=FComPortDataBits, write=SetComPortDataBits, default=3
		};
	__property TComPortStopBits ComPortStopBits = {read=FComPortStopBits, write=SetComPortStopBits, default=0
		};
	__property TComPortParity ComPortParity = {read=FComPortParity, write=SetComPortParity, default=0};
		
	__property TComPortHwHandshaking ComPortHwHandshaking = {read=FComPortHwHandshaking, write=SetComPortHwHandshaking
		, default=0};
	__property Classes::TNotifyEvent OnResponseReady = {read=FResponseReady, write=FResponseReady};
	__property Classes::TNotifyEvent OnError = {read=FOnError, write=FOnError};
	__property Byte SlaveId = {read=FSlaveId, write=FSlaveId, nodefault};
	__property Byte FunctionCode = {read=FFunction, write=FFunction, nodefault};
	__property Word Offset = {read=FOffset, write=FOffset, nodefault};
	__property Word Quantity = {read=FQuantity, write=FQuantity, nodefault};
	__property Byte RegisterDim = {read=FRegisterDim, write=FRegisterDim, nodefault};
	__property Word Timeout = {read=FTimeout, write=FTimeout, nodefault};
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE void __fastcall Register(void);

}	/* namespace Modbusm */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Modbusm;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// ModbusM

⌨️ 快捷键说明

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