package com.iailab.netsdk.lib.structure; import com.iailab.netsdk.lib.NetSDKLib; import java.util.Arrays; /** * @author : 260611 * @description : NET_TRAFFIC_FLOW_STATE * @since : Created in 2022/03/10 10:12 */ public class NET_TRAFFIC_FLOW_STATE extends NetSDKLib.SdkStructure { /** * 车道号 */ public int nLane; /** * 状态值 若emJamState字段为有效值(不为 JAM_STATUS_UNKNOW) ,则dwState字段无效 */ public int dwState; /** * 流量值, 单位: 辆 */ public int dwFlow; /** * 流量值对应的统计时间, 单位:分钟。与dwPeriodByMili一起使用。 */ public int dwPeriod; /** * 车道方向信息 */ public NET_TRAFFIC_FLOWSTAT_INFO_DIR stTrafficFlowDir = new NET_TRAFFIC_FLOWSTAT_INFO_DIR(); /** * 通过车辆总数 */ public int nVehicles; /** * 平均车速,单位km/h */ public float fAverageSpeed; /** * 平均车长,单位米 */ public float fAverageLength; /** * 时间占有率,即单位时间内通过断面的车辆所用时间的总和占单位时间的比例 */ public float fTimeOccupyRatio; /** * 空间占有率,即按百分率计量的车辆长度总和除以时间间隔内车辆平均行驶距离 */ public float fSpaceOccupyRatio; /** * 车头间距,相邻车辆之间的距离,单位米/辆 */ public float fSpaceHeadway; /** * 车头时距,单位秒/辆 */ public float fTimeHeadway; /** * 车辆密度,每公里的车辆数,单位辆/km */ public float fDensity; /** * 超速车辆数 */ public int nOverSpeedVehicles; /** * 低速车辆数 */ public int nUnderSpeedVehicles; /** * 大车交通量(9米<车长<12米),辆/单位时间 */ public int nLargeVehicles; /** * 中型车交通量(6米<车长<9米),辆/单位时间 */ public int nMediumVehicles; /** * 小车交通量(4米<车长<6米),辆/单位时间, */ public int nSmallVehicles; /** * 摩托交通量(微型车,车长<4米),辆/单位时间, */ public int nMotoVehicles; /** * 超长交通量(车长>=12米),辆/单位时间, */ public int nLongVehicles; /** * 交通量, 辆/单位时间, 某时间间隔通过车道、道路或其他通道上一点的车辆数,常以1小时计, */ public int nVolume; /** * 流率小车当量,辆/小时, 车辆通过车道、道路某一断面或某一路段的当量小时流量 */ public int nFlowRate; /** * 排队长度,单位:米, 从信号交叉口停车线到上游排队车辆末端之间的距离(建议废掉 改用dBackOfQueue下面) */ public int nBackOfQueue; /** * 旅行时间,单位:秒, 车辆通过某一条道路所用时间。包括所有停车延误 */ public int nTravelTime; /** * 延误,单位:秒,驾驶员、乘客或行人花费的额外的行程时间 */ public int nDelay; /** * 车道方向,详见NET_ROAD_DIRECTION */ public byte[] byDirection = new byte[16]; /** * 车道行驶方向个数 */ public byte byDirectionNum; /** * 字节对齐 */ public byte[] reserved1 = new byte[3]; /** * 道路拥挤状况 若此字段为有效值(不为 JAM_STATUS_UNKNOW) ,则以此字段为准, dwState字段无效 */ public int emJamState; /** * 客车交通量(辆/单位时间) */ public int nPassengerCarVehicles; /** * 大货车交通量(辆/单位时间) */ public int nLargeTruckVehicles; /** * 中货车交通量(辆/单位时间) */ public int nMidTruckVehicles; /** * 轿车交通量(辆/单位时间) */ public int nSaloonCarVehicles; /** * 面包车交通量(辆/单位时间) */ public int nMicrobusVehicles; /** * 小货车交通量(辆/单位时间) */ public int nMicroTruckVehicles; /** * 三轮车交通量(辆/单位时间) */ public int nTricycleVehicles; /** * 摩托车交通量(辆/单位时间) */ public int nMotorcycleVehicles; /** * 行人交通量(辆/单位时间) */ public int nPasserbyVehicles; /** * 道路等级 */ public int emRank; /** * 流量状态 */ public int nState; /** * 车头虚拟线圈是否被占用 TURE表示占用,FALSE表示未占用 */ public int bOccupyHeadCoil; /** * 车尾虚拟线圈是否被占用 TURE表示占用,FALSE表示未占用 */ public int bOccupyTailCoil; /** * 流量数据是否有效 TURE表示有效,FALSE表示无效 */ public int bStatistics; /** * 左转车辆总数,单位:分钟 */ public int nLeftVehicles; /** * 右转车辆总数,单位:分钟 */ public int nRightVehicles; /** * 直行车辆总数,单位:分钟 */ public int nStraightVehicles; /** * 掉头车辆总数,单位:分钟 */ public int nUTurnVehicles; /** * 每个车道的最后一辆车坐标,采用8192坐标系 */ public NetSDKLib.NET_POINT stQueueEnd = new NetSDKLib.NET_POINT(); /** * 排队长度,单位:米, 从信号交叉口停车线到上游排队车辆末端之间的距离 */ public double dBackOfQueue; /** * 流量值的毫秒时间,值不超过60000,和dwPeriod一起使用,流量值总时间:dwPeriod*60*1000+dwPeriodByMili(单位:毫秒) */ public int dwPeriodByMili; /** * 公交车交通量(辆/单位时间) */ public int nBusVehicles; /** * MPV交通量(辆/单位时间) */ public int nMPVVehicles; /** * 中客车交通量(辆/单位时间) */ public int nMidPassengerCarVehicles; /** * 微型轿车交通量(辆/单位时间) */ public int nMiniCarriageVehicles; /** * 油罐车交通量(辆/单位时间) */ public int nOilTankTruckVehicles; /** * 皮卡车交通量(辆/单位时间) */ public int nPickupVehicles; /** * SUV交通量(辆/单位时间) */ public int nSUVVehicles; /** * SUV或者MPV交通量(辆/单位时间) */ public int nSUVorMPVVehicles; /** * 槽罐车交通量(辆/单位时间) */ public int nTankCarVehicles; /** * 未知车辆交通量(辆/单位时间) */ public int nUnknownVehicles; /** * 车道流量信息属性 */ public int emCustomFlowAttribute; /** * 道路空闲长度,例:如设定路段长度为100米,实际检测到排队长度为30米,那么道路空闲长度就为70米,单位:米 */ public int nRoadFreeLength; /** * 溢出状态。例:如给当前路段设定允许排队长度阀值,实际排队长度超过阀值后就判定当前时刻该路段有溢出。 */ public int emOverflowState; /** * / 排队车辆数,单位:辆 */ public int nQueueVehicleNum; /** * / 空间占有率统计个数 */ public int nSpaceOccupyRatioMultiCount; /** * / 空间占有率统计信息 */ public NET_SPACE_OCCUPY_RATIO_MULTI[] stuSpaceOccupyRatioMulti = new NET_SPACE_OCCUPY_RATIO_MULTI[32]; /** * / 停车次数,周期内该车道内所有目标的总停车次数,单位:次 */ public int nTotalStopNum; /** * / 延误时间,周期内该车道内所有目标的总延误时间,单位:毫秒 */ public int nTotalDelayTime; /** * / 目标总数量,周期内进入该车道内所有目标总数量,单位 辆 */ public int nTotalNum; /** * / 平均停车次数,周期内该车道所有目标的平均停车次数。单位:次 */ public float fAverageStopNum; /** * / 平均延误时间,周期内该车道所有目标的平均延误时间。单位:毫秒 */ public float fAverageDelayTime; /** * / 流量饱和度,该车道内的流量饱和度 */ public float fFlowSaturationRatio; /** * / 最大排队长度,周期内最大排队长度,单位:米 */ public float fMaxQueueLen; /** * / 排队开始位置,排队时队首距设备的位置,以设备方向为正,负数表示队首在设备后方,单位:米 */ public float fQueueStartingPoint; /** * / 排队结束位置,排队时队尾距设备的位置,以设备方向为正,负数表示队尾在设备后方,单位:米 */ public float fQueueFinishingPoint; /** * / 空间占有目标个数,即区域车辆数,该车道内指定区域的车辆数目,支持车道内多区域统计,不同区域车辆数使用|符号分隔。 */ public byte[] szSpaceOccupyNum = new byte[64]; /** * / 云台预置点,球机预置点必大于0 */ public int nPresetID; /** * / 保留字节 */ public byte[] reserved = new byte[88]; @Override public String toString() { return "NET_TRAFFIC_FLOW_STATE{" + "nLane=" + nLane + ", dwState=" + dwState + ", dwFlow=" + dwFlow + ", dwPeriod=" + dwPeriod + ", stTrafficFlowDir=" + stTrafficFlowDir.toString() + ", nVehicles=" + nVehicles + ", fAverageSpeed=" + fAverageSpeed + ", fAverageLength=" + fAverageLength + ", fTimeOccupyRatio=" + fTimeOccupyRatio + ", fSpaceOccupyRatio=" + fSpaceOccupyRatio + ", fSpaceHeadway=" + fSpaceHeadway + ", fTimeHeadway=" + fTimeHeadway + ", fDensity=" + fDensity + ", nOverSpeedVehicles=" + nOverSpeedVehicles + ", nUnderSpeedVehicles=" + nUnderSpeedVehicles + ", nLargeVehicles=" + nLargeVehicles + ", nMediumVehicles=" + nMediumVehicles + ", nSmallVehicles=" + nSmallVehicles + ", nMotoVehicles=" + nMotoVehicles + ", nLongVehicles=" + nLongVehicles + ", nVolume=" + nVolume + ", nFlowRate=" + nFlowRate + ", nBackOfQueue=" + nBackOfQueue + ", nTravelTime=" + nTravelTime + ", nDelay=" + nDelay + ", byDirection=" + Arrays.toString(byDirection) + ", byDirectionNum=" + byDirectionNum + ", emJamState=" + emJamState + ", nPassengerCarVehicles=" + nPassengerCarVehicles + ", nLargeTruckVehicles=" + nLargeTruckVehicles + ", nMidTruckVehicles=" + nMidTruckVehicles + ", nSaloonCarVehicles=" + nSaloonCarVehicles + ", nMicrobusVehicles=" + nMicrobusVehicles + ", nMicroTruckVehicles=" + nMicroTruckVehicles + ", nTricycleVehicles=" + nTricycleVehicles + ", nMotorcycleVehicles=" + nMotorcycleVehicles + ", nPasserbyVehicles=" + nPasserbyVehicles + ", emRank=" + emRank + ", nState=" + nState + ", bOccupyHeadCoil=" + bOccupyHeadCoil + ", bOccupyTailCoil=" + bOccupyTailCoil + ", bStatistics=" + bStatistics + ", nLeftVehicles=" + nLeftVehicles + ", nRightVehicles=" + nRightVehicles + ", nStraightVehicles=" + nStraightVehicles + ", nUTurnVehicles=" + nUTurnVehicles + ", stQueueEnd=" + stQueueEnd.toString() + ", dBackOfQueue=" + dBackOfQueue + ", dwPeriodByMili=" + dwPeriodByMili + ", nBusVehicles=" + nBusVehicles + ", nMPVVehicles=" + nMPVVehicles + ", nMidPassengerCarVehicles=" + nMidPassengerCarVehicles + ", nMiniCarriageVehicles=" + nMiniCarriageVehicles + ", nOilTankTruckVehicles=" + nOilTankTruckVehicles + ", nPickupVehicles=" + nPickupVehicles + ", nSUVVehicles=" + nSUVVehicles + ", nSUVorMPVVehicles=" + nSUVorMPVVehicles + ", nTankCarVehicles=" + nTankCarVehicles + ", nUnknownVehicles=" + nUnknownVehicles + ", emCustomFlowAttribute=" + emCustomFlowAttribute + ", nRoadFreeLength=" + nRoadFreeLength + ", emOverflowState=" + emOverflowState + '}'; } }