18045010223
2025-07-07 0d3a683a0c97154b1f2e6657398664537e4e3e82
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
package org.yzh.protocol.commons.transform.attribute;
 
import io.github.yezhihao.protostar.Schema;
import io.netty.buffer.ByteBuf;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;
 
/**
 * 超速报警 0x11
 * length 1 或 5
 */
@ToString
@Data
@Accessors(chain = true)
public class OverSpeedAlarm extends Alarm {
 
    public static final Integer key = 17;
 
    public static final Schema<OverSpeedAlarm> SCHEMA = new OverSpeedAlarmSchema();
 
    /** 位置类型:0.无特定位置 1.圆形区域 2.矩形区域 3.多边形区域 4.路段 */
    private byte areaType;
    /** 区域或路段ID */
    private int areaId;
 
    public OverSpeedAlarm() {
    }
 
    public OverSpeedAlarm(byte areaType, int areaId) {
        this.areaType = areaType;
        this.areaId = areaId;
    }
 
    @Override
    public int getAlarmType() {
        return key;
    }
 
    private static class OverSpeedAlarmSchema implements Schema<OverSpeedAlarm> {
 
        private OverSpeedAlarmSchema() {
        }
 
        @Override
        public OverSpeedAlarm readFrom(ByteBuf input) {
            OverSpeedAlarm message = new OverSpeedAlarm();
            message.areaType = input.readByte();
            if (message.areaType > 0)
                message.areaId = input.readInt();
            return message;
        }
 
        @Override
        public void writeTo(ByteBuf output, OverSpeedAlarm message) {
            output.writeByte(message.areaType);
            if (message.areaType > 0)
                output.writeInt(message.areaId);
        }
    }
}