using BatCharging.Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BatCharging.Service { /// /// 数据上报解析类 /// public class MsgRemoteDataDecoder { /// /// 解析遥信数据上报 /// /// public RemoteData BRemoteDataToValue(byte[] data) { RemoteData mRemoteData = null; mRemoteData = new RemoteData(); if (data.Count() > 30) { mRemoteData.WorkDev = MsgBits.ByteToBitsValue(data, 24, 0, 2); mRemoteData.TotalFault = MsgBits.ByteToBitsValue(data, 24, 2, 1); mRemoteData.CommonAlarm = MsgBits.ByteToBitsValue(data, 24, 3, 1); mRemoteData.EmergencyStop = MsgBits.ByteToBitsValue(data, 24, 4, 1); mRemoteData.SmokeFault = MsgBits.ByteToBitsValue(data, 24, 5, 1); mRemoteData.CirBreFailureIn = MsgBits.ByteToBitsValue(data, 24, 6, 1); mRemoteData.AGunPositiveFault = MsgBits.ByteToBitsValue(data, 24, 7, 1); mRemoteData.AGunNegativeEleFault = MsgBits.ByteToBitsValue(data, 25, 0, 1); mRemoteData.AGunPFuseFaulty = MsgBits.ByteToBitsValue(data, 25, 1, 1); mRemoteData.AGunNPositiveFuseFaulty = MsgBits.ByteToBitsValue(data, 25, 2, 1); mRemoteData.MagneticLockFaulty = MsgBits.ByteToBitsValue(data, 25, 3, 1); mRemoteData.FanFailure = MsgBits.ByteToBitsValue(data, 25, 4, 1); mRemoteData.ArresterFaulty = MsgBits.ByteToBitsValue(data, 25, 5, 1); mRemoteData.InsMonAlarm = MsgBits.ByteToBitsValue(data, 25, 6, 1); mRemoteData.InsMonFault = MsgBits.ByteToBitsValue(data, 25, 7, 1); mRemoteData.BatPReverseConFault = MsgBits.ByteToBitsValue(data, 26, 0, 1); //协议中16行 mRemoteData.VeConGuidanceFailure = MsgBits.ByteToBitsValue(data, 26, 1, 1); mRemoteData.OveCausesBarrier = MsgBits.ByteToBitsValue(data, 26, 2, 1); mRemoteData.InterfaceOverFaulty = MsgBits.ByteToBitsValue(data, 26, 3, 1); mRemoteData.ChaGunNotRetAlarm = MsgBits.ByteToBitsValue(data, 26, 4, 1); mRemoteData.BMSComFaulty = MsgBits.ByteToBitsValue(data, 26, 5, 1); mRemoteData.ChaPilePnpVolOveFault = MsgBits.ByteToBitsValue(data, 26, 6, 1); mRemoteData.InputVoltageUndFault = MsgBits.ByteToBitsValue(data, 26, 7, 1); //协议中23行 mRemoteData.OvervoltageFault = MsgBits.ByteToBitsValue(data, 27, 0, 1); mRemoteData.UndervoltageFault = MsgBits.ByteToBitsValue(data, 27, 1, 1); mRemoteData.OvercurrentFault = MsgBits.ByteToBitsValue(data, 27, 2, 1); mRemoteData.ConnectionStatus = MsgBits.ByteToBitsValue(data, 27, 3, 1); mRemoteData.ChaGunHolderStatus = MsgBits.ByteToBitsValue(data, 27, 4, 1); mRemoteData.IntEleLockStatus = MsgBits.ByteToBitsValue(data, 27, 5, 1); mRemoteData.AGunPCntactorCon = MsgBits.ByteToBitsValue(data, 27, 6, 1); mRemoteData.AGunNContactorCon = MsgBits.ByteToBitsValue(data, 27, 7, 1); mRemoteData.AccessConFailure = MsgBits.ByteToBitsValue(data, 28, 0, 1); mRemoteData.AGunPConA3dhesionFailure = MsgBits.ByteToBitsValue(data, 28, 1, 1); mRemoteData.AGunNConadhesionFailure = MsgBits.ByteToBitsValue(data, 28, 2, 1); mRemoteData.DischargeLoopFaulty = MsgBits.ByteToBitsValue(data, 28, 3, 1); mRemoteData.ConActivated = MsgBits.ByteToBitsValue(data, 28, 4, 1); mRemoteData.ConAdhesionFailure = MsgBits.ByteToBitsValue(data, 28, 5, 1); mRemoteData.OutputReverseCon = MsgBits.ByteToBitsValue(data, 28, 6, 1); mRemoteData.ModuleOutputRev = MsgBits.ByteToBitsValue(data, 28, 7, 1); //协议中39行 mRemoteData.AcConStatus = MsgBits.ByteToBitsValue(data, 29, 0, 1); mRemoteData.ChaGunOvertAlarmGen = MsgBits.ByteToBitsValue(data, 29, 1, 1); mRemoteData.ChaPileOvertAlarm = MsgBits.ByteToBitsValue(data, 29, 2, 1); mRemoteData.AGunMeterComAbnormal = MsgBits.ByteToBitsValue(data, 29, 3, 1); mRemoteData.AGunMeterAbnormal = MsgBits.ByteToBitsValue(data, 29, 4, 1); mRemoteData.FloodingAlarm = MsgBits.ByteToBitsValue(data, 29, 5, 1); mRemoteData.BatPackAuxPowerStatus = MsgBits.ByteToBitsValue(data, 29, 6, 1); mRemoteData.ReversePowerAlarm = MsgBits.ByteToBitsValue(data, 29, 7, 1); //协议中47行 mRemoteData.Mod01sts01 = MsgBits.ByteToBitsValue(data, 30, 0, 1); mRemoteData.Mod01sts02 = MsgBits.ByteToBitsValue(data, 30, 1, 1); mRemoteData.Mod01sts03 = MsgBits.ByteToBitsValue(data, 30, 2, 1); mRemoteData.Mod01sts04 = MsgBits.ByteToBitsValue(data, 30, 3, 1); mRemoteData.Mod01sts05 = MsgBits.ByteToBitsValue(data, 30, 4, 1); mRemoteData.Mod01sts06 = MsgBits.ByteToBitsValue(data, 30, 5, 1); mRemoteData.Mod01sts07 = MsgBits.ByteToBitsValue(data, 30, 6, 1); mRemoteData.Mod01sts08 = MsgBits.ByteToBitsValue(data, 30, 7, 1); //协议中49行 mRemoteData.Mod01sts09 = MsgBits.ByteToBitsValue(data, 31, 0, 1); mRemoteData.Mod01sts10 = MsgBits.ByteToBitsValue(data, 31, 1, 1); mRemoteData.Mod01sts11 = MsgBits.ByteToBitsValue(data, 31, 2, 1); mRemoteData.Mod01sts12 = MsgBits.ByteToBitsValue(data, 31, 3, 1); //协议中50行 mRemoteData.Mod02sts01 = MsgBits.ByteToBitsValue(data, 32, 0, 1); mRemoteData.Mod02sts02 = MsgBits.ByteToBitsValue(data, 32, 1, 1); mRemoteData.Mod02sts03 = MsgBits.ByteToBitsValue(data, 32, 2, 1); mRemoteData.Mod02sts04 = MsgBits.ByteToBitsValue(data, 32, 3, 1); mRemoteData.Mod02sts05 = MsgBits.ByteToBitsValue(data, 32, 4, 1); mRemoteData.Mod02sts06 = MsgBits.ByteToBitsValue(data, 32, 5, 1); mRemoteData.Mod02sts07 = MsgBits.ByteToBitsValue(data, 32, 6, 1); mRemoteData.Mod02sts08 = MsgBits.ByteToBitsValue(data, 32, 7, 1); mRemoteData.Mod02sts09 = MsgBits.ByteToBitsValue(data, 33, 0, 1); mRemoteData.Mod02sts10 = MsgBits.ByteToBitsValue(data, 33, 1, 1); mRemoteData.Mod02sts11 = MsgBits.ByteToBitsValue(data, 33, 2, 1); mRemoteData.Mod02sts12 = MsgBits.ByteToBitsValue(data, 33, 3, 1); mRemoteData.Mod03sts01 = MsgBits.ByteToBitsValue(data, 34, 0, 1); mRemoteData.Mod03sts02 = MsgBits.ByteToBitsValue(data, 34, 1, 1); mRemoteData.Mod03sts03 = MsgBits.ByteToBitsValue(data, 34, 2, 1); mRemoteData.Mod03sts04 = MsgBits.ByteToBitsValue(data, 34, 3, 1); mRemoteData.Mod03sts05 = MsgBits.ByteToBitsValue(data, 34, 4, 1); mRemoteData.Mod03sts06 = MsgBits.ByteToBitsValue(data, 34, 5, 1); mRemoteData.Mod03sts07 = MsgBits.ByteToBitsValue(data, 34, 6, 1); mRemoteData.Mod03sts08 = MsgBits.ByteToBitsValue(data, 34, 7, 1); mRemoteData.Mod03sts09 = MsgBits.ByteToBitsValue(data, 35, 0, 1); mRemoteData.Mod03sts10 = MsgBits.ByteToBitsValue(data, 35, 1, 1); mRemoteData.Mod03sts11 = MsgBits.ByteToBitsValue(data, 35, 2, 1); mRemoteData.Mod03sts12 = MsgBits.ByteToBitsValue(data, 35, 3, 1); mRemoteData.Mod04sts01 = MsgBits.ByteToBitsValue(data, 36, 0, 1); mRemoteData.Mod04sts02 = MsgBits.ByteToBitsValue(data, 36, 1, 1); mRemoteData.Mod04sts03 = MsgBits.ByteToBitsValue(data, 36, 2, 1); mRemoteData.Mod04sts04 = MsgBits.ByteToBitsValue(data, 36, 3, 1); mRemoteData.Mod04sts05 = MsgBits.ByteToBitsValue(data, 36, 4, 1); mRemoteData.Mod04sts06 = MsgBits.ByteToBitsValue(data, 36, 5, 1); mRemoteData.Mod04sts07 = MsgBits.ByteToBitsValue(data, 36, 6, 1); mRemoteData.Mod04sts08 = MsgBits.ByteToBitsValue(data, 36, 7, 1); mRemoteData.Mod04sts09 = MsgBits.ByteToBitsValue(data, 37, 0, 1); mRemoteData.Mod04sts10 = MsgBits.ByteToBitsValue(data, 37, 1, 1); mRemoteData.Mod04sts11 = MsgBits.ByteToBitsValue(data, 37, 2, 1); mRemoteData.Mod04sts12 = MsgBits.ByteToBitsValue(data, 37, 3, 1); mRemoteData.Mod05sts01 = MsgBits.ByteToBitsValue(data, 38, 0, 1); mRemoteData.Mod05sts02 = MsgBits.ByteToBitsValue(data, 38, 1, 1); mRemoteData.Mod05sts03 = MsgBits.ByteToBitsValue(data, 38, 2, 1); mRemoteData.Mod05sts04 = MsgBits.ByteToBitsValue(data, 38, 3, 1); mRemoteData.Mod05sts05 = MsgBits.ByteToBitsValue(data, 38, 4, 1); mRemoteData.Mod05sts06 = MsgBits.ByteToBitsValue(data, 38, 5, 1); mRemoteData.Mod05sts07 = MsgBits.ByteToBitsValue(data, 38, 6, 1); mRemoteData.Mod05sts08 = MsgBits.ByteToBitsValue(data, 38, 7, 1); mRemoteData.Mod05sts09 = MsgBits.ByteToBitsValue(data, 39, 0, 1); mRemoteData.Mod05sts10 = MsgBits.ByteToBitsValue(data, 39, 1, 1); mRemoteData.Mod05sts11 = MsgBits.ByteToBitsValue(data, 39, 2, 1); mRemoteData.Mod05sts12 = MsgBits.ByteToBitsValue(data, 39, 3, 1); mRemoteData.Mod06sts01 = MsgBits.ByteToBitsValue(data, 40, 0, 1); mRemoteData.Mod06sts02 = MsgBits.ByteToBitsValue(data, 40, 1, 1); mRemoteData.Mod06sts03 = MsgBits.ByteToBitsValue(data, 40, 2, 1); mRemoteData.Mod06sts04 = MsgBits.ByteToBitsValue(data, 40, 3, 1); mRemoteData.Mod06sts05 = MsgBits.ByteToBitsValue(data, 40, 4, 1); mRemoteData.Mod06sts06 = MsgBits.ByteToBitsValue(data, 40, 5, 1); mRemoteData.Mod06sts07 = MsgBits.ByteToBitsValue(data, 40, 6, 1); mRemoteData.Mod06sts08 = MsgBits.ByteToBitsValue(data, 40, 7, 1); mRemoteData.Mod06sts09 = MsgBits.ByteToBitsValue(data, 41, 0, 1); mRemoteData.Mod06sts10 = MsgBits.ByteToBitsValue(data, 41, 1, 1); mRemoteData.Mod06sts11 = MsgBits.ByteToBitsValue(data, 41, 2, 1); mRemoteData.Mod06sts12 = MsgBits.ByteToBitsValue(data, 41, 3, 1); mRemoteData.Mod07sts01 = MsgBits.ByteToBitsValue(data, 42, 0, 1); mRemoteData.Mod07sts02 = MsgBits.ByteToBitsValue(data, 42, 1, 1); mRemoteData.Mod07sts03 = MsgBits.ByteToBitsValue(data, 42, 2, 1); mRemoteData.Mod07sts04 = MsgBits.ByteToBitsValue(data, 42, 3, 1); mRemoteData.Mod07sts05 = MsgBits.ByteToBitsValue(data, 42, 4, 1); mRemoteData.Mod07sts06 = MsgBits.ByteToBitsValue(data, 42, 5, 1); mRemoteData.Mod07sts07 = MsgBits.ByteToBitsValue(data, 42, 6, 1); mRemoteData.Mod07sts08 = MsgBits.ByteToBitsValue(data, 42, 7, 1); mRemoteData.Mod07sts09 = MsgBits.ByteToBitsValue(data, 43, 0, 1); mRemoteData.Mod07sts10 = MsgBits.ByteToBitsValue(data, 43, 1, 1); mRemoteData.Mod07sts11 = MsgBits.ByteToBitsValue(data, 43, 2, 1); mRemoteData.Mod07sts12 = MsgBits.ByteToBitsValue(data, 43, 3, 1); mRemoteData.Mod08sts01 = MsgBits.ByteToBitsValue(data, 44, 0, 1); mRemoteData.Mod08sts02 = MsgBits.ByteToBitsValue(data, 44, 1, 1); mRemoteData.Mod08sts03 = MsgBits.ByteToBitsValue(data, 44, 2, 1); mRemoteData.Mod08sts04 = MsgBits.ByteToBitsValue(data, 44, 3, 1); mRemoteData.Mod08sts05 = MsgBits.ByteToBitsValue(data, 44, 4, 1); mRemoteData.Mod08sts06 = MsgBits.ByteToBitsValue(data, 44, 5, 1); mRemoteData.Mod08sts07 = MsgBits.ByteToBitsValue(data, 44, 6, 1); mRemoteData.Mod08sts08 = MsgBits.ByteToBitsValue(data, 44, 7, 1); mRemoteData.Mod08sts09 = MsgBits.ByteToBitsValue(data, 45, 0, 1); mRemoteData.Mod08sts10 = MsgBits.ByteToBitsValue(data, 45, 1, 1); mRemoteData.Mod08sts11 = MsgBits.ByteToBitsValue(data, 45, 2, 1); mRemoteData.Mod08sts12 = MsgBits.ByteToBitsValue(data, 45, 3, 1); mRemoteData.BGunPositiveFault = MsgBits.ByteToBitsValue(data, 46, 0, 1); mRemoteData.BGunNegativeEleFault = MsgBits.ByteToBitsValue(data, 46, 1, 1); mRemoteData.BGunPFuseFaulty = MsgBits.ByteToBitsValue(data, 46, 2, 1); mRemoteData.BGunNPositiveFuseFaulty = MsgBits.ByteToBitsValue(data, 46, 3, 1); mRemoteData.BGunPCntactorCon = MsgBits.ByteToBitsValue(data, 46, 4, 1); mRemoteData.BGunNContactorCon = MsgBits.ByteToBitsValue(data, 46, 5, 1); mRemoteData.BGunPConA3dhesionFailure = MsgBits.ByteToBitsValue(data, 46, 6, 1); mRemoteData.BGunNConadhesionFailure = MsgBits.ByteToBitsValue(data, 46, 7, 1); mRemoteData.BGunMeterComAbnormal = MsgBits.ByteToBitsValue(data, 47, 0, 1); mRemoteData.BGunMeterAbnormal = MsgBits.ByteToBitsValue(data, 47, 1, 1); } return mRemoteData; } } }