123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- using Edge.Core.Parser.BinaryParser.Attributes;
- using Edge.Core.Parser.BinaryParser.Util;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace LanTian_Pump_664_Or_886.MessageEntity.Incoming
- {
- public class ReadPumpStateResponse : MessageBase
- {
- public enum NozzleStateEnum
- {
- 提枪 = 0,
- 挂枪 = 1
- }
- public enum StartOrStopStateEnum
- {
- 停机 = 0,
- /// <summary>
- /// 有的油机主板是真正出油才变成 开机状态,有的是收到FC发来的开机指令后就变成 开机状态
- /// </summary>
- 开机 = 1
- }
- public enum ControlStateEnum
- {
- 自控 = 0,
- 受控 = 1
- }
- public enum ErrorStateEnum
- {
- 无错误,
- 传感器错误,
- 计数器错误,
- /// <summary>
- /// the protocol doc does not defined, how?
- /// </summary>
- Undefined
- }
- public enum PaymentStateEnum
- {
- 无支付请求,
- POS支付请求,
- }
- [Format(1, EncodingType.BIN, 1)]
- public byte RawStateFlag { get; set; }
- public NozzleStateEnum NozzleState
- {
- get
- {
- return this.RawStateFlag.GetBit(7) == 0 ? NozzleStateEnum.提枪 : NozzleStateEnum.挂枪;
- }
- set
- {
- this.RawStateFlag = this.RawStateFlag.SetBit(7, 7, value == NozzleStateEnum.提枪 ? 0 : 1);
- }
- }
- public StartOrStopStateEnum StartOrStopState
- {
- get
- {
- return this.RawStateFlag.GetBit(5) == 0 ? StartOrStopStateEnum.停机 : StartOrStopStateEnum.开机;
- }
- set
- {
- this.RawStateFlag = this.RawStateFlag.SetBit(5, 5, value == StartOrStopStateEnum.停机 ? 0 : 1);
- }
- }
- public ControlStateEnum ControlState
- {
- get
- {
- return this.RawStateFlag.GetBit(3) == 0 ? ControlStateEnum.自控 : ControlStateEnum.受控;
- }
- set
- {
- this.RawStateFlag = this.RawStateFlag.SetBit(3, 3, value == ControlStateEnum.自控 ? 0 : 1);
- }
- }
- public ErrorStateEnum ErrorState
- {
- get
- {
- var bit1 = this.RawStateFlag.GetBit(1);
- var bit2 = this.RawStateFlag.GetBit(2);
- if (bit1 == 0 && bit2 == 0)
- return ErrorStateEnum.无错误;
- if (bit2 == 0 && bit1 == 1) return ErrorStateEnum.传感器错误;
- if (bit2 == 1 && bit1 == 0) return ErrorStateEnum.计数器错误;
- return ErrorStateEnum.Undefined;
- }
- }
- public PaymentStateEnum PaymentState
- {
- get
- {
- return this.RawStateFlag.GetBit(0) == 0 ? PaymentStateEnum.无支付请求 : PaymentStateEnum.POS支付请求;
- }
- set
- {
- this.RawStateFlag = this.RawStateFlag.SetBit(0, 0, value == PaymentStateEnum.无支付请求 ? 0 : 1);
- }
- }
- public override string ToLogString()
- {
- return this.GetType().Name + base.ToLogString() + " Nozzle with Address: " + this.Adrs
- + " is " + this.NozzleState + ", " + this.StartOrStopState + ", " + this.ControlState + ", " + this.ErrorState + ", " + this.PaymentState;
- }
- }
- }
|