1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
package com.netsdk.lib.structure;
 
 
import com.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 +
                '}';
    }
}