Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ActivateKeypadsRequest = Request{ Message: Message{ Name: "activate keypads request", MsgType: 0xa4, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "reader 1", Type: "bool", Offset: 8, }, { Name: "reader 2", Type: "bool", Offset: 9, }, { Name: "reader 3", Type: "bool", Offset: 10, }, { Name: "reader 4", Type: "bool", Offset: 11, }, }, }, Tests: []RequestTest{ { Name: "activate-keypads", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "reader 1", Type: "bool", Value: true, }, { Name: "reader 2", Type: "bool", Value: true, }, { Name: "reader 3", Type: "bool", Value: false, }, { Name: "reader 4", Type: "bool", Value: true, }, }, Expected: []byte{ 0x17, 0xa4, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var AddTaskRequest = Request{ Message: Message{ Name: "add task request", MsgType: 0xa8, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "task", Type: "task", Offset: 26, }, { Name: "start date", Type: "date", Offset: 8, }, { Name: "end date", Type: "date", Offset: 12, }, { Name: "monday", Type: "bool", Offset: 16, }, { Name: "tuesday", Type: "bool", Offset: 17, }, { Name: "wednesday", Type: "bool", Offset: 18, }, { Name: "thursday", Type: "bool", Offset: 19, }, { Name: "friday", Type: "bool", Offset: 20, }, { Name: "saturday", Type: "bool", Offset: 21, }, { Name: "sunday", Type: "bool", Offset: 22, }, { Name: "start time", Type: "HHmm", Offset: 23, }, { Name: "door", Type: "uint8", Offset: 25, }, { Name: "more cards", Type: "uint8", Offset: 27, }, }, }, Tests: []RequestTest{ { Name: "add-task", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "task", Type: "task", Value: "2", }, { Name: "start date", Type: "date", Value: "2025-01-01", }, { Name: "end date", Type: "date", Value: "2025-12-31", }, { Name: "monday", Type: "bool", Value: "true", }, { Name: "tuesday", Type: "bool", Value: "true", }, { Name: "wednesday", Type: "bool", Value: "false", }, { Name: "thursday", Type: "bool", Value: "true", }, { Name: "friday", Type: "bool", Value: "false", }, { Name: "saturday", Type: "bool", Value: "true", }, { Name: "sunday", Type: "bool", Value: "true", }, { Name: "start time", Type: "HHmm", Value: "08:45", }, { Name: "door", Type: "uint8", Value: "3", }, { Name: "more cards", Type: "uint8", Value: "7", }, }, Expected: []byte{ 0x17, 0xa8, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x20, 0x25, 0x01, 0x01, 0x20, 0x25, 0x12, 0x31, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x08, 0x45, 0x03, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var ClearTaskListRequest = Request{ Message: Message{ Name: "clear tasklist request", MsgType: 0xa6, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "", Type: "magic", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "clear-task-list", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0xa6, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x55, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var ClearTimeProfilesRequest = Request{ Message: Message{ Name: "clear time profiles request", MsgType: 0x8a, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "", Type: "magic", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "clear-time-profiles", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0x8a, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x55, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var DeleteAllCardsRequest = Request{ Message: Message{ Name: "delete cards request", MsgType: 0x54, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "", Type: "magic", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "delete-all-cards", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0x54, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x55, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var DeleteCardRequest = Request{ Message: Message{ Name: "delete card request", MsgType: 0x52, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "card number", Type: "uint32", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "delete-card", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: 10058400, }, }, Expected: []byte{ 0x17, 0x52, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa0, 0x7a, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetAntiPassbackRequest = Request{ Message: Message{ Name: "get antipassback request", MsgType: 0x86, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, }, }, Tests: []RequestTest{ { Name: "get-antipassack", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0x86, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetCardAtIndexRequest = Request{ Message: Message{ Name: "get card at index request", MsgType: 0x5c, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "index", Type: "uint32", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "get-card-at-index", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "index", Type: "uint32", Value: 135, }, }, Expected: []byte{ 0x17, 0x5c, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetCardRequest = Request{ Message: Message{ Name: "get card request", MsgType: 0x5a, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "card number", Type: "uint32", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "get-card", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: 10058400, }, }, Expected: []byte{ 0x17, 0x5a, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa0, 0x7a, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetCardsRequest = Request{ Message: Message{ Name: "get cards request", MsgType: 0x58, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, }, }, Tests: []RequestTest{ { Name: "get-cards", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0x58, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetControllerRequest = Request{ Message: Message{ Name: "get controller request", MsgType: 0x94, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, }, }, Tests: []RequestTest{ { Name: "find-controllers", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 0, }, }, Expected: []byte{ 0x17, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, { Name: "get-controller", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0x94, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetDoorRequest = Request{ Message: Message{ Name: "get door request", MsgType: 0x82, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "door", Type: "uint8", Offset: 8, Description: "door ID ([1..4])", }, }, }, Tests: []RequestTest{ { Name: "get-door", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 3, }, }, Expected: []byte{ 0x17, 0x82, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetEventIndexRequest = Request{ Message: Message{ Name: "get event index request", MsgType: 0xb4, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, }, }, Tests: []RequestTest{ { Name: "get-event-index", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0xb4, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetEventRequest = Request{ Message: Message{ Name: "get event request", MsgType: 0xb0, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "event index", Type: "uint32", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "get-event", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "event index", Type: "uint32", Value: 13579, }, }, Expected: []byte{ 0x17, 0xb0, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x0b, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetListenerAddrPortRequest = Request{ Message: Message{ Name: "get listener addr port request", MsgType: 0x92, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, }, }, Tests: []RequestTest{ { Name: "get-listener-addr-port", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0x92, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetListenerRequest = Request{ Message: Message{ Name: "get listener request", MsgType: 0x92, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, }, }, Tests: []RequestTest{ { Name: "get-listener", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0x92, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetStatusRequest = Request{ Message: Message{ Name: "get status request", MsgType: 0x20, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, }, }, Tests: []RequestTest{ { Name: "get-status", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0x20, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetTimeProfileRequest = Request{ Message: Message{ Name: "get time profile request", MsgType: 0x98, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "profile", Type: "uint8", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "get-time-profile", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "profile", Type: "uint8", Value: 37, }, }, Expected: []byte{ 0x17, 0x98, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var GetTimeRequest = Request{ Message: Message{ Name: "get time request", MsgType: 0x32, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, }, }, Tests: []RequestTest{ { Name: "get-time", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0x32, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var OpenDoorRequest = Request{ Message: Message{ Name: "open door request", MsgType: 0x40, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "door", Type: "uint8", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "open-door", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 3, }, }, Expected: []byte{ 0x17, 0x40, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var PutCardRequest = Request{ Message: Message{ Name: "put card request", MsgType: 0x50, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "card", Type: "uint32", Offset: 8, }, { Name: "start date", Type: "date", Offset: 12, }, { Name: "end date", Type: "date", Offset: 16, }, { Name: "door 1", Type: "uint8", Offset: 20, }, { Name: "door 2", Type: "uint8", Offset: 21, }, { Name: "door 3", Type: "uint8", Offset: 22, }, { Name: "door 4", Type: "uint8", Offset: 23, }, { Name: "PIN", Type: "pin", Offset: 24, }, }, }, Tests: []RequestTest{ { Name: "put-card", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: 10058400, }, { Name: "start date", Type: "date", Value: "2025-01-01", }, { Name: "end date", Type: "date", Value: "2025-12-31", }, { Name: "door 1", Type: "uint8", Value: 1, }, { Name: "door 2", Type: "uint8", Value: 0, }, { Name: "door 3", Type: "uint8", Value: 17, }, { Name: "door 4", Type: "uint8", Value: 1, }, { Name: "PIN", Type: "pin", Value: 999999, }, }, Expected: []byte{ 0x17, 0x50, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa0, 0x7a, 0x99, 0x00, 0x20, 0x25, 0x01, 0x01, 0x20, 0x25, 0x12, 0x31, 0x01, 0x00, 0x11, 0x01, 0x3f, 0x42, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var RecordSpecialEventsRequest = Request{ Message: Message{ Name: "record special events request", MsgType: 0x8e, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "enabled", Type: "bool", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "record-special-events-request", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "enabled", Type: "bool", Value: true, }, }, Expected: []byte{ 0x17, 0x8e, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var RefreshTaskListRequest = Request{ Message: Message{ Name: "refresh task list request", MsgType: 0xac, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "", Type: "magic", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "refresh-task-list", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0xac, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x55, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var RestoreDefaultParametersRequest = Request{ Message: Message{ Name: "restore default parameters request", MsgType: 0xc8, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "", Type: "magic", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "restore-default-parameters", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Expected: []byte{ 0x17, 0xc8, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x55, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetAntiPassbackRequest = Request{ Message: Message{ Name: "set antipassback request", MsgType: 0x84, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "antipassback", Type: "anti-passback", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "set-antipassack", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "antipassback", Type: "anti-passback", Value: 2, }, }, Expected: []byte{ 0x17, 0x84, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetDoorPasscodesRequest = Request{ Message: Message{ Name: "set door passcodes request", MsgType: 0x8c, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "door", Type: "uint8", Offset: 8, }, { Name: "passcode 1", Type: "pin", Offset: 12, }, { Name: "passcode 2", Type: "pin", Offset: 16, }, { Name: "passcode 3", Type: "pin", Offset: 20, }, { Name: "passcode 4", Type: "pin", Offset: 24, }, }, }, Tests: []RequestTest{ { Name: "set-door-passcodes", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 3, }, { Name: "passcode 1", Type: "uint32", Value: 123456, }, { Name: "passcode 2", Type: "uint32", Value: 234567, }, { Name: "passcode 3", Type: "uint32", Value: 345678, }, { Name: "passcode 4", Type: "uint32", Value: 456789, }, }, Expected: []byte{ 0x17, 0x8c, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x03, 0x00, 0x00, 0x00, 0x40, 0xe2, 0x01, 0x00, 0x47, 0x94, 0x03, 0x00, 0x4e, 0x46, 0x05, 0x00, 0x55, 0xf8, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, { Name: "set-door-passcodes-with-invalid-passcode", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 3, }, { Name: "passcode 1", Type: "uint32", Value: 123456, }, { Name: "passcode 2", Type: "uint32", Value: 1234567, }, { Name: "passcode 3", Type: "uint32", Value: 345678, }, { Name: "passcode 4", Type: "uint32", Value: 456789, }, }, Expected: []byte{ 0x17, 0x8c, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x03, 0x00, 0x00, 0x00, 0x40, 0xe2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x46, 0x05, 0x00, 0x55, 0xf8, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetDoorRequest = Request{ Message: Message{ Name: "set door request", MsgType: 0x80, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "door", Type: "uint8", Offset: 8, }, { Name: "mode", Type: "mode", Offset: 9, }, { Name: "delay", Type: "uint8", Offset: 10, }, }, }, Tests: []RequestTest{ { Name: "set-door", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 3, }, { Name: "mode", Type: "mode", Value: 2, }, { Name: "delay", Type: "uint8", Value: 17, }, }, Expected: []byte{ 0x17, 0x80, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x03, 0x02, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetEventIndexRequest = Request{ Message: Message{ Name: "set event index request", MsgType: 0xb2, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "event index", Type: "uint32", Offset: 8, }, { Name: "", Type: "magic", Offset: 12, }, }, }, Tests: []RequestTest{ { Name: "set-event-index-request", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "index", Type: "uint32", Value: 13579, }, }, Expected: []byte{ 0x17, 0xb2, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x0b, 0x35, 0x00, 0x00, 0x55, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetIPv4Request = Request{ Message: Message{ Name: "set IPv4 request", MsgType: 0x96, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "address", Type: "IPv4", Offset: 8, Description: "controller IPv4 address", }, { Name: "netmask", Type: "IPv4", Offset: 12, Description: "controller IPv4 subnet mask", }, { Name: "gateway", Type: "IPv4", Offset: 16, Description: "controller IPv4 gateway address", }, { Name: "", Type: "magic", Offset: 20, Description: "'magic' word", }, }, }, Tests: []RequestTest{ { Name: "set-IPv4", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "address", Type: "IPv4", Value: netip.MustParseAddr("192.168.1.125"), }, { Name: "netmask", Type: "IPv4", Value: netip.MustParseAddr("255.255.255.0"), }, { Name: "gateway", Type: "IPv4", Value: netip.MustParseAddr("192.168.1.1"), }, }, Expected: []byte{ 0x17, 0x96, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xc0, 0xa8, 0x01, 0x7d, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xa8, 0x01, 0x01, 0x55, 0xaa, 0xaa, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetInterlockRequest = Request{ Message: Message{ Name: "set interlock request", MsgType: 0xa2, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "interlock", Type: "interlock", Offset: 8, }, }, }, Tests: []RequestTest{ { Name: "set-interlock-request", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "interlock", Type: "interlock", Value: 8, }, }, Expected: []byte{ 0x17, 0xa2, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetListenerAddrPortRequest = Request{ Message: Message{ Name: "set listener addr:port request", MsgType: 0x90, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "listener", Type: "address:port", Offset: 8, Description: "event listener IPv4 address:port", }, { Name: "interval", Type: "uint8", Offset: 14, Description: "status auto-send interval (seconds)", }, }, }, Tests: []RequestTest{ { Name: "set-listener-addrport", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "listener", Type: "address:port", Value: netip.MustParseAddrPort("192.168.1.100:60001"), }, { Name: "interval", Type: "uint8", Value: 17, }, }, Expected: []byte{ 0x17, 0x90, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xc0, 0xa8, 0x01, 0x64, 0x61, 0xea, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetListenerRequest = Request{ Message: Message{ Name: "set listener request", MsgType: 0x90, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "address", Type: "IPv4", Offset: 8, Description: "event listener IPv4 address", }, { Name: "port", Type: "uint16", Offset: 12, Description: "event listener IPv4 port", }, { Name: "interval", Type: "uint8", Offset: 14, Description: "status auto-send interval (seconds)", }, }, }, Tests: []RequestTest{ { Name: "set-listener", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "address", Type: "IPv4", Value: netip.MustParseAddr("192.168.1.100"), }, { Name: "port", Type: "uint16", Value: 60001, }, { Name: "interval", Type: "uint8", Value: 17, }, }, Expected: []byte{ 0x17, 0x90, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xc0, 0xa8, 0x01, 0x64, 0x61, 0xea, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetPCControlRequest = Request{ Message: Message{ Name: "set PC control request", MsgType: 0xa0, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "", Type: "magic", Offset: 8, }, { Name: "enabled", Type: "bool", Offset: 12, }, }, }, Tests: []RequestTest{ { Name: "set-pc-control-request", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "enabled", Type: "bool", Value: true, }, }, Expected: []byte{ 0x17, 0xa0, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x55, 0xaa, 0xaa, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetTimeProfileRequest = Request{ Message: Message{ Name: "set time profile request", MsgType: 0x88, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "profile", Type: "uint8", Offset: 8, }, { Name: "start date", Type: "date", Offset: 9, }, { Name: "end date", Type: "date", Offset: 13, }, { Name: "monday", Type: "bool", Offset: 17, }, { Name: "tuesday", Type: "bool", Offset: 18, }, { Name: "wednesday", Type: "bool", Offset: 19, }, { Name: "thursday", Type: "bool", Offset: 20, }, { Name: "friday", Type: "bool", Offset: 21, }, { Name: "saturday", Type: "bool", Offset: 22, }, { Name: "sunday", Type: "bool", Offset: 23, }, { Name: "segment 1 start", Type: "HHmm", Offset: 24, }, { Name: "segment 1 end", Type: "HHmm", Offset: 26, }, { Name: "segment 2 start", Type: "HHmm", Offset: 28, }, { Name: "segment 2 end", Type: "HHmm", Offset: 30, }, { Name: "segment 3 start", Type: "HHmm", Offset: 32, }, { Name: "segment 3 end", Type: "HHmm", Offset: 34, }, { Name: "linked profile id", Type: "uint8", Offset: 36, }, }, }, Tests: []RequestTest{ { Name: "set-time-profile", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "profile", Type: "uint8", Value: 37, }, { Name: "start date", Type: "date", Value: "2025-11-26", }, { Name: "end date", Type: "date", Value: "2025-12-29", }, { Name: "monday", Type: "bool", Value: true, }, { Name: "tuesday", Type: "bool", Value: true, }, { Name: "wednesday", Type: "bool", Value: false, }, { Name: "thursday", Type: "bool", Value: true, }, { Name: "friday", Type: "bool", Value: false, }, { Name: "saturday", Type: "bool", Value: true, }, { Name: "sunday", Type: "bool", Value: true, }, { Name: "segment 1 start", Type: "HHmm", Value: "8:30", }, { Name: "segment 1 end", Type: "HHmm", Value: "9:45", }, { Name: "segment 2 start", Type: "HHmm", Value: "11:35", }, { Name: "segment 2 end", Type: "HHmm", Value: "13:15", }, { Name: "segment 3 start", Type: "HHmm", Value: "14:01", }, { Name: "segment 3 end", Type: "HHmm", Value: "17:59", }, { Name: "linked profile id", Type: "uint8", Value: 19, }, }, Expected: []byte{ 0x17, 0x88, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x25, 0x20, 0x25, 0x11, 0x26, 0x20, 0x25, 0x12, 0x29, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x08, 0x30, 0x09, 0x45, 0x11, 0x35, 0x13, 0x15, 0x14, 0x01, 0x17, 0x59, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
View Source
var SetTimeRequest = Request{ Message: Message{ Name: "set time request", MsgType: 0x30, Fields: []Field{ { Name: "controller", Type: "uint32", Offset: 4, Description: "controller serial number", }, { Name: "datetime", Type: "datetime", Offset: 8, Description: "date/time", }, }, }, Tests: []RequestTest{ { Name: "set-time", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "datetime", Type: "datetime", Value: "2025-11-04 12:34:56", }, }, Expected: []byte{ 0x17, 0x30, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x20, 0x25, 0x11, 0x04, 0x12, 0x34, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, }, }
Functions ¶
This section is empty.
Types ¶
type RequestTest ¶
type RequestTest = types.RequestTest
Source Files
¶
- activate-keypads.go
- add-task.go
- clear-tasklist.go
- clear-time-profiles.go
- delete-all-cards.go
- delete-card.go
- get-antipassback.go
- get-card-at-index.go
- get-card.go
- get-cards.go
- get-controller.go
- get-door.go
- get-event-index.go
- get-event.go
- get-listener-addrport.go
- get-listener.go
- get-status.go
- get-time-profile.go
- get-time.go
- open-door.go
- put-card.go
- record-special-events.go
- refresh-tasklist.go
- requests.go
- restore-default-parameters.go
- set-IPv4.go
- set-antipassback.go
- set-door-passcodes.go
- set-door.go
- set-event-index.go
- set-interlock.go
- set-listener-addrport.go
- set-listener.go
- set-pc-control.go
- set-time-profile.go
- set-time.go
Click to show internal directories.
Click to hide internal directories.