lcp.h

来自「基于单片机的 snmp协议解析的一些原代码 给有用的 同行」· C头文件 代码 · 共 69 行

H
69
字号
//---------------------------------------------------------------------------
#ifndef lcpH
#define lcpH
//---------------------------------------------------------------------------
//#include <string>
#include "lcpOptions.h"
class LCP
{
	public:
        LCP();
        ~LCP();
    	void FillLCP(string &data);
        void GetMessageType(string &type);
        void AssignConfigureReject(LCP receivedMessage);
        void AssignConfigureAck(LCP receivedMessage);
        void AssignConfigureNak(LCP receivedMessage);
        void AssignConfigureRequest();
        void AssignConfigureRequest(unsigned char ident);
        void AppendConfigureRequestOption(unsigned long option, string theOptionData);
        void AppendConfigureRequestOption(unsigned long option, long optionType);
        void AssignTerminateRequest();
        void AssignTerminateRequest(unsigned char ident);
        void AssignTerminateAck(unsigned char ident);
        void AssignCodeReject();
        void AssignCodeReject(LCP receivedMessage);
        void AssignProtocolReject(LCP receivedMessage);
        void AssignEchoRequest(unsigned char ident);
        void AssignEchoReply(unsigned char ident);
        void AssignDiscardRequest(unsigned char ident);
        unsigned char GetCode();
        unsigned char GetIdentifier();
        unsigned short GetLength();
//        unsigned short GetData(unsigned char *dataArray);
		unsigned short GetData(string &dataArray);
		unsigned short GetPacket(string &packet);
        long GetEvent(LCP lastSentLCP, long lastSentMagicNumber);
        void SetPacketTime();
        unsigned long GetPacketTime();
        char GetConfigureRequestOptionType();
        long HandleConfigureRequest(long lastSentMagicNumber);
        string GetOptionString(long theOptionType);
        long GetOption(char *theUsedOptionLength, char *theOptionType, char *theOptionLength, char *theOptionData);
        long FillOptionsList(LCP receivedMessage, string &newOptionsList, long newMessageType);
        long GetMagicNumber();
        void GetLCPOptions( long *maximumReceiveUnit, string *asyncControlCharacterMap,
            long *authenticationProtocol, long *qualityProtocol, long *magicNumber,
            bool *protocolFieldCompression, bool *addressControlFieldCompression,
            long *reserved, long *FCSAlternative, bool *selfDescribingPad, bool *numberedMode,
            bool *callback, bool *multilinkOptions);
        void SetLCPOptions(long maximumReceiveUnit, string asyncControlCharacterMap,
            long authenticationProtocol, long qualityProtocol, long magicNumber,
            bool protocolFieldCompression, bool addressControlFieldCompression,
            long reserved, long FCSAlternative, bool selfDescribingPad, bool numberedMode,
            bool callback, bool multilinkOptions);
        void GetSelectedOptions(long *numOptions, long *optionsList);
        long GetAuthenticationProtocol();
    private:
    	unsigned char code;
        unsigned short length;
//        unsigned char data[1024];
		string data;
        static unsigned char identifier;
        unsigned char identifierCounter;
        unsigned long timeOfPacket;
        lcpOptions options;
};
unsigned char LCP::identifier=0;
#endif

⌨️ 快捷键说明

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