发送请求时自动加上序号,创建响应时拷贝序号

This commit is contained in:
nnhy 2016-04-11 02:32:07 +00:00
parent 7c9b94a955
commit 5bea03b730
3 changed files with 22 additions and 0 deletions

View File

@ -601,6 +601,7 @@ bool TinyController::Send(Message& _msg)
// 附上自己的地址
msg.Src = Address;
// 附上序列号。响应消息保持序列号不变
if(!msg.Reply) msg.Seq = ++_Sequence;

View File

@ -104,6 +104,18 @@ void TokenMessage::SetError(byte errorCode, const char* error, int errLength)
}
}*/
// 创建当前消息对应的响应消息。设置序列号、标识位
TokenMessage TokenMessage::CreateReply() const
{
TokenMessage msg;
msg.Code = Code;
msg.Reply = true;
msg.Seq = Seq;
msg.State = State;
return msg;
}
void TokenMessage::Show() const
{
#if MSG_DEBUG
@ -345,6 +357,7 @@ bool TokenController::OnReceive(Message& msg)
return Controller::OnReceive(msg);
}
static byte _Sequence = 0;
// 发送消息,传输口参数为空时向所有传输口发送消息
bool TokenController::Send(Message& msg)
{
@ -352,6 +365,11 @@ bool TokenController::Send(Message& msg)
// 未登录,登录注册,握手可通过
//if(Token == 0&&!( msg.Code <= 0x2||msg.Code == 0x07)) return false;
//static byte _Sequence = 0;
auto& tmsg = (TokenMessage&)msg;
// 附上序列号。响应消息保持序列号不变
if(!msg.Reply && tmsg.Seq == 0) tmsg.Seq = ++_Sequence;
if(msg.Reply)
ShowMessage("Reply", msg);
else

View File

@ -42,6 +42,9 @@ public:
//// 设置错误信息字符串
//void SetError(byte errorCode, const char* error, int errLength);
// 创建当前消息对应的响应消息。设置序列号、标识位
TokenMessage CreateReply() const;
// 显示消息内容
virtual void Show() const;
};