using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PLCS7 { /// /// 终端数据块结构体 /// public struct TerminalStru { /// /// 终端ID号 /// public short terminalID; /// /// 终端状态,0暂停,1停车,2取车 /// public short terminalStatus;//终端写入 /// /// 按钮状态,0缺省,1非注册,2注册 /// public short btnStatus;//终端写入 /// /// 停取指令,0缺省,1停车,2取车 /// public short cmd;//终端写入 /// /// 注册用户UserID /// public int licenseCodeA;//终端写入 /// /// 注册用户号牌地域标记 /// public int licenseCodeB;//终端写入 /// /// 注册用户号牌后半部分A /// public int licenseCodeC;//终端写入 /// /// 注册用户号牌后半部分B /// public int licenseCodeD;//终端写入 /// /// 凭证号 /// public int receiptNum;//终端写入,24 /// /// 支付状态,0-1失败-2成功-3管理员放行 /// public short paymentStatus;//中控写入,28 /// /// 1-成功,2-号牌比对不成功 /// public short licVerification;//中控写入,30 /// /// 停车费用,0-99999 /// public short parkingFee;//中控写入 /// /// 用户类型,0-1普通-2月卡-3季卡-4年卡VIP /// public short userType;//中控写入,34 /// /// 地感信号 /// public short groundStatus; public short coordX;//PLC public short coordY;//PLC public override string ToString() { return "[终端id:" + terminalID + ",终端状态:" + terminalStatus + ",按钮状态:" + btnStatus + ",终端指令:" + cmd + ",用户id:" + licenseCodeA + "," + licenseCodeB + "," + licenseCodeC + "," + licenseCodeD + ",凭证号:" + receiptNum + ",支付状态:" + paymentStatus + ",号牌验证:" + licVerification + ",停车费用:" + parkingFee + ",用户类型:" + userType + ",地感信号:" + groundStatus + "]"; } public override bool Equals(object obj) { if (obj == null) return false; else if ((object)this == obj) return true; else if (obj.GetType().Equals(typeof(TerminalStru))) { TerminalStru ts = (TerminalStru)obj; if (ts.ToString().Equals(ToString())) return true; else return false; } else return false; } public override int GetHashCode() { return (ToString()).GetHashCode(); } } /// /// 中控与PLC交互使用数据块的结构体 /// public struct MainBlockStru { /// /// 终端ID号 /// public short terminalID; /// /// 号牌机启动指令 /// public short numMachineLaunch; /// /// 摆扫启动指令 /// public short sweepLaserLaunch; /// /// 轮距启动指令 /// public short wheelbaseLaserLaunch; /// /// 急停 /// public short stop; /// /// 就绪 /// public short ready; /// /// 停车运行 /// public short parkingRunning; /// /// 取车运行 /// public short fetchingRunning; /// /// 流程完成 /// public short processCompleted; /// /// 流程中断 /// public short processStopped; /// /// 摆扫激光状态 /// public short sweepLaserStatus; /// /// 轮距雷达状态 /// public short wheelbaseLaserStatus; public short groundAStatus;//24 public short groundBStatus; public short groundCStatus; public short groundDStatus; public short groundEStatus; public short groundFStatus; public short arriveAAndOpen; public short arriveBAndOpen; public short arriveCAndOpen; public short arriveDAndOpen; public short arriveEAndOpen; public short arriveFAndOpen; //public short leaveAAndOpen; //public short leaveBAndOpen; //public short leaveCAndOpen; public short bookParkCmd; public short bookFetchCmd; /// /// 号牌机获取 /// public short licenseReceived;//中控可写,52 /// /// 本地自动模式 /// public short localAutoMode; /// /// 云端模式 /// public short remoteMode; /// /// 本地手动模式 /// public short localManualMode; public override string ToString() { return "[id:" + terminalID + ",号牌:" + numMachineLaunch + ",摆扫:" + sweepLaserLaunch + ",轮距:" + wheelbaseLaserLaunch + ",急停:" + stop + ",就绪:" + ready + ",停车启动:" + parkingRunning + ",取车启动:" + fetchingRunning + ",流程完成:" + processCompleted + ",流程中止:" + processStopped + ",摆扫状态:" + sweepLaserStatus + ",轮距状态:"+wheelbaseLaserStatus+",号牌获取:" + licenseReceived + ",本地自动:" + localAutoMode + ",远程模式:" + remoteMode + ",本地手动:" + localManualMode + "," + groundAStatus + "," + groundBStatus + "," + groundCStatus + "," + arriveAAndOpen + "," + arriveBAndOpen + "," + arriveCAndOpen + "]"; } public override int GetHashCode() { return (ToString()).GetHashCode(); } public override bool Equals(object obj) { if (obj == null) return false; else if ((object)this == obj) return true; else if (obj.GetType().Equals(typeof(MainBlockStru))) { MainBlockStru ts = (MainBlockStru)obj; if (ts.ToString().Equals(ToString())) return true; else return false; } else return false; } } /// /// 车位单元结构体 /// public struct ParkingSpaceStru { /// /// 车位编号 /// public short parkingSpace; /// /// 长 /// public short length; /// /// 宽 /// public short width; /// /// 高 /// public short height; /// /// 楼层编号 /// public short floorNo; public short coordX; public short coordY; /// /// 凭证号 /// public int receiptNum; /// /// 车位状态,0空位-1占用-2保留-3故障 /// public short spaceStatus; /// /// 前轮距 /// public short frontWheelbase; /// /// 后轮距 /// public short rearWheelbase; public override string ToString() { return "[车位编号:" + parkingSpace + ",长:" + length + ",宽:" + width + ",高:" + height + ",楼层:" + floorNo + ",X坐标:" + coordX + ",Y坐标:" + coordY + ",凭证号:" + receiptNum + ",车位状态:" + spaceStatus + ",前轮距:" + frontWheelbase + ",后轮距:" + rearWheelbase + "]"; } public override int GetHashCode() { return (ToString()).GetHashCode(); } public override bool Equals(object obj) { if (obj == null) return false; else if ((object)this == obj) return true; else if (obj.GetType().Equals(typeof(ParkingSpaceStru))) { ParkingSpaceStru ts = (ParkingSpaceStru)obj; if (ts.ToString().Equals(ToString())) return true; else return false; } else return false; } } }