github.com/m3db/m3@v1.5.1-0.20231129193456-75a402aa583b/src/dbnode/generated/proto/annotation/annotation.pb.go (about) 1 // Code generated by protoc-gen-gogo. DO NOT EDIT. 2 // source: github.com/m3db/m3/src/dbnode/generated/proto/annotation/annotation.proto 3 4 // Copyright (c) 2021 Uber Technologies, Inc. 5 // 6 // Permission is hereby granted, free of charge, to any person obtaining a copy 7 // of this software and associated documentation files (the "Software"), to deal 8 // in the Software without restriction, including without limitation the rights 9 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 // copies of the Software, and to permit persons to whom the Software is 11 // furnished to do so, subject to the following conditions: 12 // 13 // The above copyright notice and this permission notice shall be included in 14 // all copies or substantial portions of the Software. 15 // 16 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 // THE SOFTWARE. 23 24 /* 25 Package annotation is a generated protocol buffer package. 26 27 It is generated from these files: 28 github.com/m3db/m3/src/dbnode/generated/proto/annotation/annotation.proto 29 30 It has these top-level messages: 31 Payload 32 */ 33 package annotation 34 35 import proto "github.com/gogo/protobuf/proto" 36 import fmt "fmt" 37 import math "math" 38 39 import io "io" 40 41 // Reference imports to suppress errors if they are not otherwise used. 42 var _ = proto.Marshal 43 var _ = fmt.Errorf 44 var _ = math.Inf 45 46 // This is a compile-time assertion to ensure that this generated file 47 // is compatible with the proto package it is being compiled against. 48 // A compilation error at this line likely means your copy of the 49 // proto package needs to be updated. 50 const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package 51 52 type SourceFormat int32 53 54 const ( 55 // OPEN_METRICS also includes Prometheus data. 56 // Using 0 for OPEN_METRICS because only Prometheus types were being stored before. 57 SourceFormat_OPEN_METRICS SourceFormat = 0 58 // Graphite/statsd. 59 SourceFormat_GRAPHITE SourceFormat = 1 60 ) 61 62 var SourceFormat_name = map[int32]string{ 63 0: "OPEN_METRICS", 64 1: "GRAPHITE", 65 } 66 var SourceFormat_value = map[string]int32{ 67 "OPEN_METRICS": 0, 68 "GRAPHITE": 1, 69 } 70 71 func (x SourceFormat) String() string { 72 return proto.EnumName(SourceFormat_name, int32(x)) 73 } 74 func (SourceFormat) EnumDescriptor() ([]byte, []int) { return fileDescriptorAnnotation, []int{0} } 75 76 type OpenMetricsFamilyType int32 77 78 const ( 79 OpenMetricsFamilyType_UNKNOWN OpenMetricsFamilyType = 0 80 OpenMetricsFamilyType_COUNTER OpenMetricsFamilyType = 1 81 OpenMetricsFamilyType_GAUGE OpenMetricsFamilyType = 2 82 OpenMetricsFamilyType_HISTOGRAM OpenMetricsFamilyType = 3 83 OpenMetricsFamilyType_GAUGE_HISTOGRAM OpenMetricsFamilyType = 4 84 OpenMetricsFamilyType_SUMMARY OpenMetricsFamilyType = 5 85 OpenMetricsFamilyType_INFO OpenMetricsFamilyType = 6 86 OpenMetricsFamilyType_STATESET OpenMetricsFamilyType = 7 87 ) 88 89 var OpenMetricsFamilyType_name = map[int32]string{ 90 0: "UNKNOWN", 91 1: "COUNTER", 92 2: "GAUGE", 93 3: "HISTOGRAM", 94 4: "GAUGE_HISTOGRAM", 95 5: "SUMMARY", 96 6: "INFO", 97 7: "STATESET", 98 } 99 var OpenMetricsFamilyType_value = map[string]int32{ 100 "UNKNOWN": 0, 101 "COUNTER": 1, 102 "GAUGE": 2, 103 "HISTOGRAM": 3, 104 "GAUGE_HISTOGRAM": 4, 105 "SUMMARY": 5, 106 "INFO": 6, 107 "STATESET": 7, 108 } 109 110 func (x OpenMetricsFamilyType) String() string { 111 return proto.EnumName(OpenMetricsFamilyType_name, int32(x)) 112 } 113 func (OpenMetricsFamilyType) EnumDescriptor() ([]byte, []int) { 114 return fileDescriptorAnnotation, []int{1} 115 } 116 117 type GraphiteType int32 118 119 const ( 120 GraphiteType_GRAPHITE_UNKNOWN GraphiteType = 0 121 GraphiteType_GRAPHITE_COUNTER GraphiteType = 1 122 GraphiteType_GRAPHITE_GAUGE GraphiteType = 2 123 GraphiteType_GRAPHITE_TIMER GraphiteType = 3 124 ) 125 126 var GraphiteType_name = map[int32]string{ 127 0: "GRAPHITE_UNKNOWN", 128 1: "GRAPHITE_COUNTER", 129 2: "GRAPHITE_GAUGE", 130 3: "GRAPHITE_TIMER", 131 } 132 var GraphiteType_value = map[string]int32{ 133 "GRAPHITE_UNKNOWN": 0, 134 "GRAPHITE_COUNTER": 1, 135 "GRAPHITE_GAUGE": 2, 136 "GRAPHITE_TIMER": 3, 137 } 138 139 func (x GraphiteType) String() string { 140 return proto.EnumName(GraphiteType_name, int32(x)) 141 } 142 func (GraphiteType) EnumDescriptor() ([]byte, []int) { return fileDescriptorAnnotation, []int{2} } 143 144 type Payload struct { 145 SourceFormat SourceFormat `protobuf:"varint,3,opt,name=source_format,json=sourceFormat,proto3,enum=annotation.SourceFormat" json:"source_format,omitempty"` 146 // Used when source_format == OPEN_METRICS 147 OpenMetricsFamilyType OpenMetricsFamilyType `protobuf:"varint,1,opt,name=open_metrics_family_type,json=openMetricsFamilyType,proto3,enum=annotation.OpenMetricsFamilyType" json:"open_metrics_family_type,omitempty"` 148 OpenMetricsHandleValueResets bool `protobuf:"varint,2,opt,name=open_metrics_handle_value_resets,json=openMetricsHandleValueResets,proto3" json:"open_metrics_handle_value_resets,omitempty"` 149 // Used when source_format == GRAPHITE 150 GraphiteType GraphiteType `protobuf:"varint,4,opt,name=graphite_type,json=graphiteType,proto3,enum=annotation.GraphiteType" json:"graphite_type,omitempty"` 151 } 152 153 func (m *Payload) Reset() { *m = Payload{} } 154 func (m *Payload) String() string { return proto.CompactTextString(m) } 155 func (*Payload) ProtoMessage() {} 156 func (*Payload) Descriptor() ([]byte, []int) { return fileDescriptorAnnotation, []int{0} } 157 158 func (m *Payload) GetSourceFormat() SourceFormat { 159 if m != nil { 160 return m.SourceFormat 161 } 162 return SourceFormat_OPEN_METRICS 163 } 164 165 func (m *Payload) GetOpenMetricsFamilyType() OpenMetricsFamilyType { 166 if m != nil { 167 return m.OpenMetricsFamilyType 168 } 169 return OpenMetricsFamilyType_UNKNOWN 170 } 171 172 func (m *Payload) GetOpenMetricsHandleValueResets() bool { 173 if m != nil { 174 return m.OpenMetricsHandleValueResets 175 } 176 return false 177 } 178 179 func (m *Payload) GetGraphiteType() GraphiteType { 180 if m != nil { 181 return m.GraphiteType 182 } 183 return GraphiteType_GRAPHITE_UNKNOWN 184 } 185 186 func init() { 187 proto.RegisterType((*Payload)(nil), "annotation.Payload") 188 proto.RegisterEnum("annotation.SourceFormat", SourceFormat_name, SourceFormat_value) 189 proto.RegisterEnum("annotation.OpenMetricsFamilyType", OpenMetricsFamilyType_name, OpenMetricsFamilyType_value) 190 proto.RegisterEnum("annotation.GraphiteType", GraphiteType_name, GraphiteType_value) 191 } 192 func (m *Payload) Marshal() (dAtA []byte, err error) { 193 size := m.Size() 194 dAtA = make([]byte, size) 195 n, err := m.MarshalTo(dAtA) 196 if err != nil { 197 return nil, err 198 } 199 return dAtA[:n], nil 200 } 201 202 func (m *Payload) MarshalTo(dAtA []byte) (int, error) { 203 var i int 204 _ = i 205 var l int 206 _ = l 207 if m.OpenMetricsFamilyType != 0 { 208 dAtA[i] = 0x8 209 i++ 210 i = encodeVarintAnnotation(dAtA, i, uint64(m.OpenMetricsFamilyType)) 211 } 212 if m.OpenMetricsHandleValueResets { 213 dAtA[i] = 0x10 214 i++ 215 if m.OpenMetricsHandleValueResets { 216 dAtA[i] = 1 217 } else { 218 dAtA[i] = 0 219 } 220 i++ 221 } 222 if m.SourceFormat != 0 { 223 dAtA[i] = 0x18 224 i++ 225 i = encodeVarintAnnotation(dAtA, i, uint64(m.SourceFormat)) 226 } 227 if m.GraphiteType != 0 { 228 dAtA[i] = 0x20 229 i++ 230 i = encodeVarintAnnotation(dAtA, i, uint64(m.GraphiteType)) 231 } 232 return i, nil 233 } 234 235 func encodeVarintAnnotation(dAtA []byte, offset int, v uint64) int { 236 for v >= 1<<7 { 237 dAtA[offset] = uint8(v&0x7f | 0x80) 238 v >>= 7 239 offset++ 240 } 241 dAtA[offset] = uint8(v) 242 return offset + 1 243 } 244 func (m *Payload) Size() (n int) { 245 var l int 246 _ = l 247 if m.OpenMetricsFamilyType != 0 { 248 n += 1 + sovAnnotation(uint64(m.OpenMetricsFamilyType)) 249 } 250 if m.OpenMetricsHandleValueResets { 251 n += 2 252 } 253 if m.SourceFormat != 0 { 254 n += 1 + sovAnnotation(uint64(m.SourceFormat)) 255 } 256 if m.GraphiteType != 0 { 257 n += 1 + sovAnnotation(uint64(m.GraphiteType)) 258 } 259 return n 260 } 261 262 func sovAnnotation(x uint64) (n int) { 263 for { 264 n++ 265 x >>= 7 266 if x == 0 { 267 break 268 } 269 } 270 return n 271 } 272 func sozAnnotation(x uint64) (n int) { 273 return sovAnnotation(uint64((x << 1) ^ uint64((int64(x) >> 63)))) 274 } 275 func (m *Payload) Unmarshal(dAtA []byte) error { 276 l := len(dAtA) 277 iNdEx := 0 278 for iNdEx < l { 279 preIndex := iNdEx 280 var wire uint64 281 for shift := uint(0); ; shift += 7 { 282 if shift >= 64 { 283 return ErrIntOverflowAnnotation 284 } 285 if iNdEx >= l { 286 return io.ErrUnexpectedEOF 287 } 288 b := dAtA[iNdEx] 289 iNdEx++ 290 wire |= (uint64(b) & 0x7F) << shift 291 if b < 0x80 { 292 break 293 } 294 } 295 fieldNum := int32(wire >> 3) 296 wireType := int(wire & 0x7) 297 if wireType == 4 { 298 return fmt.Errorf("proto: Payload: wiretype end group for non-group") 299 } 300 if fieldNum <= 0 { 301 return fmt.Errorf("proto: Payload: illegal tag %d (wire type %d)", fieldNum, wire) 302 } 303 switch fieldNum { 304 case 1: 305 if wireType != 0 { 306 return fmt.Errorf("proto: wrong wireType = %d for field OpenMetricsFamilyType", wireType) 307 } 308 m.OpenMetricsFamilyType = 0 309 for shift := uint(0); ; shift += 7 { 310 if shift >= 64 { 311 return ErrIntOverflowAnnotation 312 } 313 if iNdEx >= l { 314 return io.ErrUnexpectedEOF 315 } 316 b := dAtA[iNdEx] 317 iNdEx++ 318 m.OpenMetricsFamilyType |= (OpenMetricsFamilyType(b) & 0x7F) << shift 319 if b < 0x80 { 320 break 321 } 322 } 323 case 2: 324 if wireType != 0 { 325 return fmt.Errorf("proto: wrong wireType = %d for field OpenMetricsHandleValueResets", wireType) 326 } 327 var v int 328 for shift := uint(0); ; shift += 7 { 329 if shift >= 64 { 330 return ErrIntOverflowAnnotation 331 } 332 if iNdEx >= l { 333 return io.ErrUnexpectedEOF 334 } 335 b := dAtA[iNdEx] 336 iNdEx++ 337 v |= (int(b) & 0x7F) << shift 338 if b < 0x80 { 339 break 340 } 341 } 342 m.OpenMetricsHandleValueResets = bool(v != 0) 343 case 3: 344 if wireType != 0 { 345 return fmt.Errorf("proto: wrong wireType = %d for field SourceFormat", wireType) 346 } 347 m.SourceFormat = 0 348 for shift := uint(0); ; shift += 7 { 349 if shift >= 64 { 350 return ErrIntOverflowAnnotation 351 } 352 if iNdEx >= l { 353 return io.ErrUnexpectedEOF 354 } 355 b := dAtA[iNdEx] 356 iNdEx++ 357 m.SourceFormat |= (SourceFormat(b) & 0x7F) << shift 358 if b < 0x80 { 359 break 360 } 361 } 362 case 4: 363 if wireType != 0 { 364 return fmt.Errorf("proto: wrong wireType = %d for field GraphiteType", wireType) 365 } 366 m.GraphiteType = 0 367 for shift := uint(0); ; shift += 7 { 368 if shift >= 64 { 369 return ErrIntOverflowAnnotation 370 } 371 if iNdEx >= l { 372 return io.ErrUnexpectedEOF 373 } 374 b := dAtA[iNdEx] 375 iNdEx++ 376 m.GraphiteType |= (GraphiteType(b) & 0x7F) << shift 377 if b < 0x80 { 378 break 379 } 380 } 381 default: 382 iNdEx = preIndex 383 skippy, err := skipAnnotation(dAtA[iNdEx:]) 384 if err != nil { 385 return err 386 } 387 if skippy < 0 { 388 return ErrInvalidLengthAnnotation 389 } 390 if (iNdEx + skippy) > l { 391 return io.ErrUnexpectedEOF 392 } 393 iNdEx += skippy 394 } 395 } 396 397 if iNdEx > l { 398 return io.ErrUnexpectedEOF 399 } 400 return nil 401 } 402 func skipAnnotation(dAtA []byte) (n int, err error) { 403 l := len(dAtA) 404 iNdEx := 0 405 for iNdEx < l { 406 var wire uint64 407 for shift := uint(0); ; shift += 7 { 408 if shift >= 64 { 409 return 0, ErrIntOverflowAnnotation 410 } 411 if iNdEx >= l { 412 return 0, io.ErrUnexpectedEOF 413 } 414 b := dAtA[iNdEx] 415 iNdEx++ 416 wire |= (uint64(b) & 0x7F) << shift 417 if b < 0x80 { 418 break 419 } 420 } 421 wireType := int(wire & 0x7) 422 switch wireType { 423 case 0: 424 for shift := uint(0); ; shift += 7 { 425 if shift >= 64 { 426 return 0, ErrIntOverflowAnnotation 427 } 428 if iNdEx >= l { 429 return 0, io.ErrUnexpectedEOF 430 } 431 iNdEx++ 432 if dAtA[iNdEx-1] < 0x80 { 433 break 434 } 435 } 436 return iNdEx, nil 437 case 1: 438 iNdEx += 8 439 return iNdEx, nil 440 case 2: 441 var length int 442 for shift := uint(0); ; shift += 7 { 443 if shift >= 64 { 444 return 0, ErrIntOverflowAnnotation 445 } 446 if iNdEx >= l { 447 return 0, io.ErrUnexpectedEOF 448 } 449 b := dAtA[iNdEx] 450 iNdEx++ 451 length |= (int(b) & 0x7F) << shift 452 if b < 0x80 { 453 break 454 } 455 } 456 iNdEx += length 457 if length < 0 { 458 return 0, ErrInvalidLengthAnnotation 459 } 460 return iNdEx, nil 461 case 3: 462 for { 463 var innerWire uint64 464 var start int = iNdEx 465 for shift := uint(0); ; shift += 7 { 466 if shift >= 64 { 467 return 0, ErrIntOverflowAnnotation 468 } 469 if iNdEx >= l { 470 return 0, io.ErrUnexpectedEOF 471 } 472 b := dAtA[iNdEx] 473 iNdEx++ 474 innerWire |= (uint64(b) & 0x7F) << shift 475 if b < 0x80 { 476 break 477 } 478 } 479 innerWireType := int(innerWire & 0x7) 480 if innerWireType == 4 { 481 break 482 } 483 next, err := skipAnnotation(dAtA[start:]) 484 if err != nil { 485 return 0, err 486 } 487 iNdEx = start + next 488 } 489 return iNdEx, nil 490 case 4: 491 return iNdEx, nil 492 case 5: 493 iNdEx += 4 494 return iNdEx, nil 495 default: 496 return 0, fmt.Errorf("proto: illegal wireType %d", wireType) 497 } 498 } 499 panic("unreachable") 500 } 501 502 var ( 503 ErrInvalidLengthAnnotation = fmt.Errorf("proto: negative length found during unmarshaling") 504 ErrIntOverflowAnnotation = fmt.Errorf("proto: integer overflow") 505 ) 506 507 func init() { 508 proto.RegisterFile("github.com/m3db/m3/src/dbnode/generated/proto/annotation/annotation.proto", fileDescriptorAnnotation) 509 } 510 511 var fileDescriptorAnnotation = []byte{ 512 // 441 bytes of a gzipped FileDescriptorProto 513 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0xc1, 0x6e, 0xd3, 0x40, 514 0x10, 0x86, 0xe3, 0x24, 0x6d, 0xd2, 0xc1, 0x2d, 0xab, 0x85, 0x4a, 0x3e, 0xa0, 0x28, 0x70, 0xaa, 515 0x72, 0x88, 0x25, 0x72, 0xe6, 0x60, 0x2a, 0xc7, 0xb1, 0x90, 0xed, 0x68, 0xed, 0x80, 0xe0, 0xb2, 516 0x5a, 0xc7, 0xdb, 0xc4, 0x52, 0xec, 0xb5, 0xec, 0x0d, 0x52, 0x1e, 0x80, 0x3b, 0xef, 0xc1, 0x8b, 517 0x70, 0xe4, 0x11, 0x50, 0x78, 0x11, 0xe4, 0x2d, 0x25, 0x8b, 0xe8, 0xcd, 0xf3, 0xcf, 0x37, 0xa3, 518 0x6f, 0xac, 0x05, 0x7f, 0x93, 0xcb, 0xed, 0x3e, 0x9d, 0xae, 0x45, 0x61, 0x17, 0xb3, 0x2c, 0xb5, 519 0x8b, 0x99, 0xdd, 0xd4, 0x6b, 0x3b, 0x4b, 0x4b, 0x91, 0x71, 0x7b, 0xc3, 0x4b, 0x5e, 0x33, 0xc9, 520 0x33, 0xbb, 0xaa, 0x85, 0x14, 0x36, 0x2b, 0x4b, 0x21, 0x99, 0xcc, 0x45, 0xa9, 0x7d, 0x4e, 0x55, 521 0x0f, 0xc3, 0x29, 0x79, 0xf5, 0xad, 0x0b, 0x83, 0x25, 0x3b, 0xec, 0x04, 0xcb, 0xf0, 0x27, 0xb0, 522 0x44, 0xc5, 0x4b, 0x5a, 0x70, 0x59, 0xe7, 0xeb, 0x86, 0xde, 0xb1, 0x22, 0xdf, 0x1d, 0xa8, 0x3c, 523 0x54, 0xdc, 0x32, 0xc6, 0xc6, 0xcd, 0xd5, 0xeb, 0x97, 0x53, 0x6d, 0x59, 0x54, 0xf1, 0x32, 0xb8, 524 0x47, 0xe7, 0x8a, 0x4c, 0x0e, 0x15, 0x27, 0xd7, 0xe2, 0xb1, 0x18, 0xcf, 0x61, 0xfc, 0xcf, 0xee, 525 0x2d, 0x2b, 0xb3, 0x1d, 0xa7, 0x9f, 0xd9, 0x6e, 0xcf, 0x69, 0xcd, 0x1b, 0x2e, 0x1b, 0xab, 0x3b, 526 0x36, 0x6e, 0x86, 0xe4, 0x85, 0xb6, 0x60, 0xa1, 0xa8, 0xf7, 0x2d, 0x44, 0x14, 0x83, 0xdf, 0xc0, 527 0x65, 0x23, 0xf6, 0xf5, 0x9a, 0xd3, 0x3b, 0x51, 0x17, 0x4c, 0x5a, 0x3d, 0x25, 0x66, 0xe9, 0x62, 528 0xb1, 0x02, 0xe6, 0xaa, 0x4f, 0xcc, 0x46, 0xab, 0xda, 0xf1, 0x4d, 0xcd, 0xaa, 0x6d, 0x2e, 0xf9, 529 0xfd, 0x5d, 0xfd, 0xff, 0xc7, 0xbd, 0x3f, 0x80, 0x3a, 0xc7, 0xdc, 0x68, 0xd5, 0x64, 0x0a, 0xa6, 530 0xbe, 0x1c, 0x23, 0x30, 0xa3, 0xa5, 0x1b, 0xd2, 0xc0, 0x4d, 0x88, 0x7f, 0x1b, 0xa3, 0x0e, 0x36, 531 0x61, 0xe8, 0x11, 0x67, 0xb9, 0xf0, 0x13, 0x17, 0x19, 0x93, 0x2f, 0x06, 0x5c, 0x3f, 0xfa, 0x9b, 532 0xf0, 0x13, 0x18, 0xac, 0xc2, 0x77, 0x61, 0xf4, 0x21, 0x44, 0x9d, 0xb6, 0xb8, 0x8d, 0x56, 0x61, 533 0xe2, 0x12, 0x64, 0xe0, 0x0b, 0x38, 0xf3, 0x9c, 0x95, 0xe7, 0xa2, 0x2e, 0xbe, 0x84, 0x8b, 0x85, 534 0x1f, 0x27, 0x91, 0x47, 0x9c, 0x00, 0xf5, 0xf0, 0x33, 0x78, 0xaa, 0x3a, 0xf4, 0x14, 0xf6, 0xdb, 535 0xd9, 0x78, 0x15, 0x04, 0x0e, 0xf9, 0x88, 0xce, 0xf0, 0x10, 0xfa, 0x7e, 0x38, 0x8f, 0xd0, 0x79, 536 0xeb, 0x11, 0x27, 0x4e, 0xe2, 0xc6, 0x6e, 0x82, 0x06, 0x93, 0x14, 0x4c, 0xfd, 0x2a, 0xfc, 0x1c, 537 0xd0, 0x83, 0x25, 0x3d, 0x69, 0xe8, 0xe9, 0xc9, 0x07, 0xc3, 0xd5, 0xdf, 0xf4, 0x41, 0x4c, 0xcf, 538 0x12, 0x3f, 0x70, 0x09, 0xea, 0xbd, 0x45, 0xdf, 0x8f, 0x23, 0xe3, 0xc7, 0x71, 0x64, 0xfc, 0x3c, 539 0x8e, 0x8c, 0xaf, 0xbf, 0x46, 0x9d, 0xf4, 0x5c, 0x3d, 0xb7, 0xd9, 0xef, 0x00, 0x00, 0x00, 0xff, 540 0xff, 0x36, 0xb4, 0x60, 0xa4, 0xbb, 0x02, 0x00, 0x00, 541 }