using Wayne_VaporRecoveryDataCollectorBoard.MessageEntity;
using Wayne_VaporRecoveryDataCollectorBoard.MessageEntity.Incoming;
using Edge.Core.Parser.BinaryParser;
using Edge.Core.Parser.BinaryParser.MessageEntity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Wayne_VaporRecoveryDataCollectorBoard
{
public class MessageTemplateLookup : IMessageTemplateLookup
{
const byte MsgStart = 0x68;
const byte MsgTail = 0x16;
///
///
///
/// msg starter should has been excluded here, so it's: 采集器地址Addr(1B)+命令代码(1B)+数据域长度(1B)+数据域(由数据域长度指定)+校验CS(1B)+包结束标志(1B)。
///
public MessageTemplateBase GetMessageTemplateByRawBytes(byte[] bytes)
{
if (bytes[1] == 0x00 && bytes[2] == 0x00)
return new COLLECTOR_BUSY_Response();
else if (bytes[1] == 0x01)
return new READ_WORKING_AND_TYPE_Response();
else if (bytes[1] == 0x03)
return new READ_ONE_HISTORY_DATA_Response();
else if (bytes[1] == 0x05)
return new READ_TIME_Response();
else if (bytes[1] == 0x06)
return new READ_PARA_Response();
else if (bytes[1] == 0x07)
return new READ_HISTORY_NUM_Response();
else if (bytes[1] == 0x09)
return new CLEAR_ONE_HISTORY_Response();
else if (bytes[1] == 0x80)
return new CLEAR_ONE_HISTORY_Response();
else if (bytes[1] == 0x81)
return new WRITE_TIME_Response();
else if (bytes[1] == 0x82)
return new WRITE_PARA_Response();
else if (bytes[1] == 0x83)
return new WRITE_SWITCH_OUT_Response();
else if (bytes[1] == 0xA1)
return new SET_ADDRESS_Response();
return null;
}
}
}