Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ActivateKeypads = Function{ Name: "activate keypads", Description: []string{ "Enables/disables door keypad readers.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "reader 1", Type: "bool", Description: "enables/disable the keypad for reader 1", }, { Name: "reader 2", Type: "bool", Description: "enables/disables the keypad for reader 2", }, { Name: "reader 3", Type: "bool", Description: "enables/disables the keypad for reader 3", }, { Name: "reader 4", Type: "bool", Description: "enables/disables the keypad for reader 4", }, }, Request: requests.ActivateKeypadsRequest.Message, Response: responses.ActivateKeypadsResponse.Message, Tests: []FuncTest{ { 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, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xa4, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var AddTask = Function{ Name: "add task", Description: []string{ "Creates a scheduled task.", "", "Task types:", " - 0: control door", " - 1: unlock door", " - 2: lock door", " - 3: disable time profiles", " - 4: enable time profiles", " - 5: enable card, no password", " - 6: enable card+IN password", " - 7: enable card+password", " - 8: enable more cards", " - 9: disable more cards", " - 10: trigger once", " - 11: disable pushbutton", " - 12: enable pushbutton", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "task", Type: "task", Description: "task type", }, { Name: "start date", Type: "date", Description: "date from which task is scheduled (inclusive)", }, { Name: "end date", Type: "date", Description: "date after which task no longer scheduled", }, { Name: "monday", Type: "bool", Description: "task enabled on Monday if true", }, { Name: "tuesday", Type: "bool", Description: "task enabled on Tuesday if true", }, { Name: "wednesday", Type: "bool", Description: "task enabled on Wednesday if true", }, { Name: "thursday", Type: "bool", Description: "task enabled on Thursday if true", }, { Name: "friday", Type: "bool", Description: "task enabled on Monday if true", }, { Name: "saturday", Type: "bool", Description: "task enabled on Friday if true", }, { Name: "sunday", Type: "bool", Description: "task enabled on Sunday if true", }, { Name: "start time", Type: "HHmm", Description: "time at which task is scheduled", }, { Name: "door", Type: "uint8", Description: "door ([1..4] to which task is linked", }, { Name: "more cards", Type: "uint8", Description: "number of 'more cards' for the MORE CARDS task type", }, }, Request: requests.AddTaskRequest.Message, Response: responses.AddTaskResponse.Message, Tests: []FuncTest{ { 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", }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xa8, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var ClearTaskList = Function{ Name: "clear task list", Description: []string{ "Removes all scheduled tasks.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.ClearTaskListRequest.Message, Response: responses.ClearTaskListResponse.Message, Tests: []FuncTest{ { Name: "clear-task-list", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xa6, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "uint8", Value: true, }, }, }, }, }, }, }
View Source
var ClearTimeProfiles = Function{ Name: "clear time profiles", Description: []string{ "Clears all access time profiles stored on a controller.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.ClearTimeProfilesRequest.Message, Response: responses.ClearTimeProfilesResponse.Message, Tests: []FuncTest{ { Name: "clear-time-profiles", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x8a, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "uint8", Value: true, }, }, }, }, }, }, }
View Source
var DeleteAllCards = Function{ Name: "delete all cards", Description: []string{ "Deletes all card records stored on an access controller.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.DeleteAllCardsRequest.Message, Response: responses.DeleteAllCardsResponse.Message, Tests: []FuncTest{ { Name: "delete-all-cards", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x54, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var DeleteCard = Function{ Name: "delete card", Description: []string{ "Removes a card record stored on a controller.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "card number", Type: "uint32", Description: "card number", }, }, Request: requests.DeleteCardRequest.Message, Response: responses.DeleteCardResponse.Message, Tests: []FuncTest{ { Name: "delete-card", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: 10058400, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x52, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var GetAntiPassback = Function{ Description: []string{ "Retrieves the anti-passback mode for an access controller. The anti-passback mode", "will be one of the following:", " - 0: disabled", " - 1: readers 1:2; 3:4 (independently)", " - 2: readers (1,3):(2,4)", " - 3: readers 1:(2,3)", " - 4: readers 1:(2,3,4)", }, Name: "get anti-passback", Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.GetAntiPassbackRequest.Message, Response: responses.GetAntiPassbackResponse.Message, Tests: []FuncTest{ { Name: "get-antipassback", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x86, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "antipassback", Type: "anti-passback", Value: 2, }, }, }, }, }, }, }
View Source
var GetCard = Function{ Name: "get card", Description: []string{ "Retrieves the card information for a given card number.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "card number", Type: "uint32", Description: "card number", }, }, Request: requests.GetCardRequest.Message, Response: responses.GetCardResponse.Message, Tests: []FuncTest{ { Name: "get-card", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: 10058400, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x5a, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa0, 0x7a, 0x99, 0x00, 0x20, 0x25, 0x01, 0x01, 0x20, 0x25, 0x12, 0x31, 0x01, 0x00, 0x11, 0x01, 0x6b, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: 10058400, }, { Name: "start-date", Type: "optional date", Value: "2025-01-01", }, { Name: "end-date", Type: "optional 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: 7531, }, }, }, }, }, { Name: "get-card-not-found", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: 10058401, }, }, Request: []byte{ 0x17, 0x5a, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa1, 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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x5a, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: 0, }, { Name: "start-date", Type: "optional date", Value: "0001-01-01", }, { Name: "end-date", Type: "optional date", Value: "0001-01-01", }, { Name: "door 1", Type: "uint8", Value: 0, }, { Name: "door 2", Type: "uint8", Value: 0, }, { Name: "door 3", Type: "uint8", Value: 0, }, { Name: "door 4", Type: "uint8", Value: 0, }, { Name: "PIN", Type: "pin", Value: 0, }, }, }, }, }, }, }
View Source
var GetCardAtIndex = Function{ Name: "get card at index", Description: []string{ "Retrieves the card information stored at a given index.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "index", Type: "uint32", Description: "card record index", }, }, Request: requests.GetCardAtIndexRequest.Message, Response: responses.GetCardAtIndexResponse.Message, Tests: []FuncTest{ { Name: "get-card-at-index", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "index", Type: "uint32", Value: 135, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x5c, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa0, 0x7a, 0x99, 0x00, 0x20, 0x25, 0x01, 0x01, 0x20, 0x25, 0x12, 0x31, 0x01, 0x00, 0x11, 0x01, 0x6b, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: 10058400, }, { Name: "start-date", Type: "optional date", Value: "2025-01-01", }, { Name: "end-date", Type: "optional 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: 7531, }, }, }, }, }, { Name: "get-card-at-index-not-found", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "index", Type: "uint32", Value: 136, }, }, Request: []byte{ 0x17, 0x5c, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x5c, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: 0, }, { Name: "start-date", Type: "optional date", Value: "0001-01-01", }, { Name: "end-date", Type: "optional date", Value: "0001-01-01", }, { Name: "door 1", Type: "uint8", Value: 0, }, { Name: "door 2", Type: "uint8", Value: 0, }, { Name: "door 3", Type: "uint8", Value: 0, }, { Name: "door 4", Type: "uint8", Value: 0, }, { Name: "PIN", Type: "pin", Value: 0, }, }, }, }, }, { Name: "get-card-at-index-deleted", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "index", Type: "uint32", Value: 137, }, }, Request: []byte{ 0x17, 0x5c, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x5c, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "card", Type: "uint32", Value: uint32(0xffffffff), }, { Name: "start-date", Type: "optional date", Value: "0001-01-01", }, { Name: "end-date", Type: "optional date", Value: "0001-01-01", }, { Name: "door 1", Type: "uint8", Value: 0, }, { Name: "door 2", Type: "uint8", Value: 0, }, { Name: "door 3", Type: "uint8", Value: 0, }, { Name: "door 4", Type: "uint8", Value: 0, }, { Name: "PIN", Type: "pin", Value: 0, }, }, }, }, }, }, }
View Source
var GetCards = Function{ Name: "get cards", Description: []string{ "Retrieves the number of cards stored on an access controller.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.GetCardsRequest.Message, Response: responses.GetCardsResponse.Message, Tests: []FuncTest{ { Name: "get-cards", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x58, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "cards", Type: "uint32", Value: 13579, }, }, }, }, }, }, }
View Source
var GetController = Function{ Name: "get controller", Description: []string{ "Retrieves the system information for an access controller.", }, Args: []Arg{ Arg{ Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.GetControllerRequest.Message, Response: responses.GetControllerResponse.Message, Tests: []FuncTest{ { Name: "get-controller", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x94, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xc0, 0xa8, 0x01, 0x64, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xa8, 0x01, 0x01, 0x00, 0x12, 0x23, 0x34, 0x45, 0x56, 0x08, 0x92, 0x20, 0x18, 0x11, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ip address", Type: "IPv4", Value: "192.168.1.100", }, { Name: "subnet mask", Type: "IPv4", Value: "255.255.255.0", }, { Name: "gateway", Type: "IPv4", Value: "192.168.1.1", }, { Name: "MAC Address", Type: "MAC", Value: "00:12:23:34:45:56", }, { Name: "version", Type: "version", Value: "v8.92", }, { Name: "date", Type: "date", Value: "2018-11-05", }, }, }, }, }, }, }
View Source
var GetDoor = Function{ Name: "get door", Description: []string{ "Retrieves the control mode and unlock delay time for an access controller door.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "door", Type: "uint8", Description: "door ID ([1..4])", }, }, Request: requests.GetDoorRequest.Message, Response: responses.GetDoorResponse.Message, Tests: []FuncTest{ { Name: "get-door", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 4, }, }, Request: []byte{ 0x17, 0x82, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x82, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x04, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 4, }, { Name: "mode", Type: "mode", Value: 3, }, { Name: "delay", Type: "uint8", Value: 7, }, }, }, }, }, }, }
View Source
var GetEvent = Function{ Name: "get event", Description: []string{"Retrieves an event record stored on an access controller."}, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "event index", Type: "uint32", Description: "index of event to retrieve", }, }, Request: requests.GetEventRequest.Message, Response: responses.GetEventResponse.Message, Tests: []FuncTest{ { Name: "get-event", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "event index", Type: "uint32", Value: 13579, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xb0, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x0b, 0x35, 0x00, 0x00, 0x02, 0x01, 0x04, 0x02, 0xa0, 0x7a, 0x99, 0x00, 0x20, 0x25, 0x11, 0x17, 0x12, 0x34, 0x56, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "index", Type: "uint32", Value: 13579, }, { Name: "timestamp", Type: "optional datetime", Value: "2025-11-17 12:34:56", }, { Name: "event type", Type: "event-type", Value: 2, }, { Name: "access granted", Type: "bool", Value: true, }, { Name: "door", Type: "uint8", Value: 4, }, { Name: "direction", Type: "direction", Value: 2, }, { Name: "card", Type: "uint32", Value: 10058400, }, { Name: "reason", Type: "reason", Value: 21, }, }, }, }, }, { Name: "get-event-not-found", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "event index", Type: "uint32", Value: 24680, }, }, Request: []byte{ 0x17, 0xb0, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x68, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xb0, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x68, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "index", Type: "uint32", Value: 24680, }, { Name: "timestamp", Type: "optional datetime", Value: "0001-01-01 00:00:00", }, { Name: "event type", Type: "event-type", Value: 0x00, }, { Name: "access granted", Type: "bool", Value: false, }, { Name: "door", Type: "uint8", Value: 0, }, { Name: "direction", Type: "direction", Value: 0, }, { Name: "card", Type: "uint32", Value: 0, }, { Name: "reason", Type: "reason", Value: 0, }, }, }, }, }, { Name: "get-event-overwritten", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "event index", Type: "uint32", Value: 98765, }, }, Request: []byte{ 0x17, 0xb0, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xcd, 0x81, 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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xb0, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xcd, 0x81, 0x01, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "index", Type: "uint32", Value: 98765, }, { Name: "timestamp", Type: "optional datetime", Value: "0001-01-01 00:00:00", }, { Name: "event type", Type: "event-type", Value: 0xff, }, { Name: "access granted", Type: "bool", Value: false, }, { Name: "door", Type: "uint8", Value: 0, }, { Name: "direction", Type: "direction", Value: 0, }, { Name: "card", Type: "uint32", Value: 0, }, { Name: "reason", Type: "reason", Value: 0, }, }, }, }, }, }, }
View Source
var GetEventIndex = Function{ Name: "get event index", Description: []string{ "Retrieves the downloaded event index from an access controller.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.GetEventIndexRequest.Message, Response: responses.GetEventIndexResponse.Message, Tests: []FuncTest{ { Name: "get-event-index", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xb4, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "index", Type: "uint32", Value: 13579, }, }, }, }, }, }, }
View Source
var GetListener = Function{ Name: "get listener", Description: []string{ "Retrieves the access controller event listener IPv4 address:port and auto-send interval.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.GetListenerRequest.Message, Response: responses.GetListenerResponse.Message, Tests: []FuncTest{ { Name: "get-listener", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x92, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xc0, 0xa8, 0x01, 0x64, 0x61, 0xea, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "address", Type: "IPv4", Value: "192.168.1.100", }, { Name: "port", Type: "uint16", Value: 60001, }, { Name: "interval", Type: "uint8", Value: 13, }, }, }, }, }, }, }
View Source
var GetListenerAddrPort = Function{ Name: "get listener addr:port", Description: []string{ "Retrieves the access controller event listener IPv4 address:port and auto-send interval.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.GetListenerAddrPortRequest.Message, Response: responses.GetListenerAddrPortResponse.Message, Tests: []FuncTest{ { Name: "get-listener-addr-port", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419897, }, }, Request: []byte{ 0x17, 0x92, 0x00, 0x00, 0x79, 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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x92, 0x00, 0x00, 0x79, 0x37, 0x2a, 0x18, 0xc0, 0xa8, 0x01, 0x64, 0x61, 0xea, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419897, }, { Name: "listener", Type: "address:port", Value: netip.MustParseAddrPort("192.168.1.100:60001"), }, { Name: "interval", Type: "uint8", Value: 13, }, }, }, }, }, }, }
View Source
var GetStatus = Function{ Name: "get status", Description: []string{"Retrieves the system status from an access controller."}, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.GetStatusRequest.Message, Response: responses.GetStatusResponse.Message, Tests: []FuncTest{ { Name: "get-status", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x20, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x01, 0x03, 0x01, 0xa1, 0x98, 0x7c, 0x00, 0x20, 0x22, 0x08, 0x23, 0x09, 0x47, 0x06, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x09, 0x49, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x07, 0x09, 0x22, 0x08, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "system-date", Type: "shortdate", Value: "2022-08-23", }, { Name: "system-time", Type: "time", Value: "09:49:39", }, { Name: "door-1-open", Type: "bool", Value: false, }, { Name: "door-2-open", Type: "bool", Value: true, }, { Name: "door-3-open", Type: "bool", Value: false, }, { Name: "door-4-open", Type: "bool", Value: false, }, { Name: "door-1-button", Type: "bool", Value: false, }, { Name: "door-2-button", Type: "bool", Value: false, }, { Name: "door-3-button", Type: "bool", Value: false, }, { Name: "door-4-button", Type: "bool", Value: true, }, { Name: "relays", Type: "uint8", Value: 0x07, }, { Name: "inputs", Type: "uint8", Value: 0x09, }, { Name: "system-error", Type: "uint8", Value: 3, }, { Name: "special-info", Type: "uint8", Value: 39, }, { Name: "event-index", Type: "uint32", Value: 78, }, { Name: "event-type", Type: "event-type", Value: 2, }, { Name: "event-access-granted", Type: "bool", Value: true, }, { Name: "event-door", Type: "uint8", Value: 3, }, { Name: "event-direction", Type: "direction", Value: 1, }, { Name: "event-card", Type: "uint32", Value: 8165537, }, { Name: "event-timestamp", Type: "optional datetime", Value: "2022-08-23 09:47:06", }, { Name: "event-reason", Type: "reason", Value: 44, }, { Name: "sequence-no", Type: "uint32", Value: 0, }, }, }, }, }, { Name: "get-status-no-event", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419897, }, }, Request: []byte{ 0x17, 0x20, 0x00, 0x00, 0x79, 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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x20, 0x00, 0x00, 0x79, 0x37, 0x2a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x1b, 0x14, 0x37, 0x53, 0xe3, 0x55, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x27, 0x07, 0x09, 0x25, 0x11, 0x23, 0x00, 0x00, 0x93, 0x26, 0x04, 0x88, 0x08, 0x92, 0x00, 0x00, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419897, }, { Name: "system-date", Type: "shortdate", Value: "2025-11-23", }, { Name: "system-time", Type: "time", Value: "14:37:53", }, { Name: "door-1-open", Type: "bool", Value: true, }, { Name: "door-2-open", Type: "bool", Value: false, }, { Name: "door-3-open", Type: "bool", Value: true, }, { Name: "door-4-open", Type: "bool", Value: true, }, { Name: "door-1-button", Type: "bool", Value: true, }, { Name: "door-2-button", Type: "bool", Value: true, }, { Name: "door-3-button", Type: "bool", Value: false, }, { Name: "door-4-button", Type: "bool", Value: true, }, { Name: "relays", Type: "uint8", Value: 0x07, }, { Name: "inputs", Type: "uint8", Value: 0x09, }, { Name: "system-error", Type: "uint8", Value: 27, }, { Name: "special-info", Type: "uint8", Value: 39, }, { Name: "event-index", Type: "uint32", Value: 0, }, { Name: "event-type", Type: "event-type", Value: 0, }, { Name: "event-access-granted", Type: "bool", Value: false, }, { Name: "event-door", Type: "uint8", Value: 0, }, { Name: "event-direction", Type: "direction", Value: 0, }, { Name: "event-card", Type: "uint32", Value: 0, }, { Name: "event-timestamp", Type: "optional datetime", Value: "0001-01-01 00:00:00", }, { Name: "event-reason", Type: "reason", Value: 0, }, { Name: "sequence-no", Type: "uint32", Value: 21987, }, }, }, }, }, }, }
View Source
var GetTime = Function{ Name: "get time", Description: []string{ "Retrieves the access controller system date and time.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.GetTimeRequest.Message, Response: responses.GetTimeResponse.Message, Tests: []FuncTest{ { Name: "get-time", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x32, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x20, 0x25, 0x11, 0x01, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "date-time", Type: "datetime", Value: "2025-11-01 12:34:56", }, }, }, }, }, }, }
View Source
var GetTimeProfile = Function{ Name: "get time profile", Description: []string{ "Retrieves the requested access time profile from a controller.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "profile", Type: "uint8", Description: "profile ID ([2..254] to retrieve", }, }, Request: requests.GetTimeProfileRequest.Message, Response: responses.GetTimeProfileResponse.Message, Tests: []FuncTest{ { Name: "get-time-profile", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "profile", Type: "uint8", Value: 37, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x98, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "profile", Type: "uint8", Value: 37, }, { Name: "start date", Type: "optional date", Value: "2025-11-26", }, { Name: "end date", Type: "optional 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: "08:30", }, { Name: "segment 1 end", Type: "HHmm", Value: "09: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", Type: "uint8", Value: 19, }, }, }, }, }, }, }
View Source
var OpenDoor = Function{ Name: "open door", Description: []string{ "Unlocks a door controlled by an access controller.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "door", Type: "uint8", Description: "door ID ([1..4])", }, }, Request: requests.OpenDoorRequest.Message, Response: responses.OpenDoorResponse.Message, Tests: []FuncTest{ { Name: "open-door", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 4, }, }, Request: []byte{ 0x17, 0x40, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x40, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var PutCard = Function{ Name: "put card", Description: []string{ "Creates or updates the card information stored on an access controller.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "card", Type: "uint32", Description: "card number", }, { Name: "start date", Type: "date", Description: "date from which card is valid", }, { Name: "end date", Type: "date", Description: "date after which card is invalid", }, { Name: "door 1", Type: "uint8", Description: "access permissions for door 1 (0: no access, 1: 24/7 access, [2..253] time profile)", }, { Name: "door 2", Type: "uint8", Description: "access permissions for door 2 (0: no access, 1: 24/7 access, [2..253] time profile)", }, { Name: "door 3", Type: "uint8", Description: "access permissions for door 3 (0: no access, 1: 24/7 access, [2..253] time profile)", }, { Name: "door 4", Type: "uint8", Description: "access permissions for door 4 (0: no access, 1: 24/7 access, [2..253] time profile)", }, { Name: "PIN", Type: "pin", Description: "optional PIN code [0..999999] (0 for none)", }, }, Request: requests.PutCardRequest.Message, Response: responses.PutCardResponse.Message, Tests: []FuncTest{ { 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, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x50, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var RecordSpecialEvents = Function{ Name: "record special events", Description: []string{ "Enables/disables events for door opened, door closed and door button pressed.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "enabled", Type: "bool", Description: "enables door opened, door closed and button pressed events if true", }, }, Request: requests.RecordSpecialEventsRequest.Message, Response: responses.RecordSpecialEventsResponse.Message, Tests: []FuncTest{ { Name: "record-special-events", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "enabled", Type: "bool", Value: true, }, }, Request: []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, }, Replies: []Reply{ { Message: []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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var RefreshTaskList = Function{ Name: "refresh task list", Description: []string{ "Updates scheduler with newly created scheduled tasks.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.RefreshTaskListRequest.Message, Response: responses.RefreshTaskListResponse.Message, Tests: []FuncTest{ { Name: "refresh-task-list", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xac, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "uint8", Value: true, }, }, }, }, }, }, }
View Source
var RestoreDefaultParameters = Function{ Name: "restore default parameters", Description: []string{ "Restores the controller configuration to the manufacturer defaults.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, }, Request: requests.RestoreDefaultParametersRequest.Message, Response: responses.RestoreDefaultParametersResponse.Message, Tests: []FuncTest{ { Name: "restore-default-parameters", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xc8, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var SetAntiPassback = Function{ Description: []string{ "Sets the access controller anti-passback mode.", "", "The following modes are supported:", " - 0: disabled", " - 1: doors 1&2, doors 3&4", " - 2: doors 1&3, doors 2&4", " - 3: door 1 & doors 2,3", " - 4: door 1 & doors 1,2,3", }, Name: "set anti-passback", Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "antipassback", Type: "anti-passback", Description: "anti-passback mode", }, }, Request: requests.SetAntiPassbackRequest.Message, Response: responses.SetAntiPassbackResponse.Message, Tests: []FuncTest{ { Name: "set-antipassback", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "antipassback", Type: "anti-passback", Value: 2, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x84, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var SetDoor = Function{ Name: "set door", Description: []string{ "Sets the control mode and unlock delay time for an access controller door.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "door", Type: "uint8", Description: "door ID ([1..4])", }, { Name: "mode", Type: "mode", Description: "control mode (1:normally open, 2:normally closed. 3:controlled)", }, { Name: "delay", Type: "uint8", Description: "unlock delay (seconds))", }, }, Request: requests.SetDoorRequest.Message, Response: responses.SetDoorResponse.Message, Tests: []FuncTest{ { Name: "set-door", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 4, }, { Name: "mode", Type: "mode", Value: 2, }, { Name: "delay", Type: "uint8", Value: 17, }, }, Request: []byte{ 0x17, 0x80, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x04, 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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x80, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x04, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 4, }, { Name: "mode", Type: "mode", Value: 2, }, { Name: "delay", Type: "uint8", Value: 17, }, }, }, }, }, }, }
View Source
var SetDoorPasscodes = Function{ Name: "set door passcodes", Description: []string{ "Sets up to 4 passcodes for a controller door.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "door", Type: "uint8", Description: "door ID ([1..4])", }, { Name: "passcode 1", Type: "pin", Description: "supervisor passcode ([0..99999]), 0 for 'none'", }, { Name: "passcode 2", Type: "pin", Description: "supervisor passcode ([0..99999]), 0 for 'none'", }, { Name: "passcode 3", Type: "pin", Description: "supervisor passcode ([0..99999]), 0 for 'none'", }, { Name: "passcode 4", Type: "pin", Description: "supervisor passcode ([0..99999]), 0 for 'none'", }, }, Request: requests.SetDoorPasscodesRequest.Message, Response: responses.SetDoorPasscodesResponse.Message, Tests: []FuncTest{ { Name: "set-door-passcodes", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "door", Type: "uint8", Value: 4, }, { Name: "passcode 1", Type: "uint32", Value: 12345, }, { Name: "passcode 2", Type: "uint32", Value: 54321, }, { Name: "passcode 3", Type: "uint32", Value: 999999, }, { Name: "passcode 4", Type: "uint32", Value: 0, }, }, Request: []byte{ 0x17, 0x8c, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x04, 0x00, 0x00, 0x00, 0x39, 0x30, 0x00, 0x00, 0x31, 0xd4, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x8c, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var SetEventIndex = Function{ Name: "set event index", Description: []string{"Sets the downloaded event index on an access controller."}, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "event index", Type: "uint32", Description: "downloaded event index", }, }, Request: requests.SetEventIndexRequest.Message, Response: responses.SetEventIndexResponse.Message, Tests: []FuncTest{ { Name: "set-event-index", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "index", Type: "uint32", Value: 13579, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xb2, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var SetIPv4 = Function{ Name: "set IPv4", Description: []string{ "Sets the controller IPv4 address, netmask and gateway address.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "address", Type: "IPv4", Description: "controller IPv4 address", }, { Name: "netmask", Type: "IPv4", Description: "controller IPv4 subnet mask", }, { Name: "gateway", Type: "IPv4", Description: "controller gateway IPv4 address", }, }, Request: requests.SetIPv4Request.Message, Response: responses.SetIPv4Response.Message, Tests: []FuncTest{ { 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"), }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x96, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var SetInterlock = Function{ Name: "set interlock", Description: []string{ "Sets the door interlock mode on an access controller.", "", "The following interlock modes are supported:", " - 0: disabled", " - 1: doors 1&2", " - 2: doors 3&4", " - 3: doors 1&2, doors 3&4", " - 4: doors 1,2&3", " - 8: doors 1,2,3&4", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "interlock", Type: "interlock", Description: "door interlock mode", }, }, Request: requests.SetInterlockRequest.Message, Response: responses.SetInterlockResponse.Message, Tests: []FuncTest{ { Name: "set-interlock", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "interlock", Type: "interlock", Value: 8, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xa2, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var SetListener = Function{ Name: "set listener", Description: []string{ "Sets the access controller event listener IPv4 address:port and auto-send interval.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "address", Type: "IPv4", Description: "IPv4 address of host to receive controller events", }, { Name: "port", Type: "uint16", Description: "UDP port of host for controller events", }, { Name: "interval", Type: "uint8", Description: "status auto-send interval (seconds). A '0' interval disables auto-send.", }, }, Request: requests.SetListenerRequest.Message, Response: responses.SetListenerResponse.Message, Tests: []FuncTest{ { 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, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x90, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var SetListenerAddrPort = Function{ Name: "set listener addr:port", Description: []string{ "Sets the access controller event listener IPv4 address:port and auto-send interval.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "listener", Type: "address:port", Description: "IPv4 address:port of host to receive controller events", }, { Name: "interval", Type: "uint8", Description: "status auto-send interval (seconds). A '0'interval disables auto-send.", }, }, Request: requests.SetListenerAddrPortRequest.Message, Response: responses.SetListenerAddrPortResponse.Message, Tests: []FuncTest{ { Name: "set-listener-addr-port", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419897, }, { Name: "listener", Type: "address:port", Value: netip.MustParseAddrPort("192.168.1.100:60001"), }, { Name: "interval", Type: "uint8", Value: 17, }, }, Request: []byte{ 0x17, 0x90, 0x00, 0x00, 0x79, 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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x90, 0x00, 0x00, 0x79, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419897, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var SetPCControl = Function{ Name: "set PC control", Description: []string{ "Enables remote access control. Remote access control will remain in effect provided the controller", "receives a message from the host at least once every 30 seconds.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "enabled", Type: "bool", Description: "enables/disables remote access control", }, }, Request: requests.SetPCControlRequest.Message, Response: responses.SetPCControlResponse.Message, Tests: []FuncTest{ { Name: "set-pc-control", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "enabled", Type: "bool", Value: true, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0xa0, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "bool", Value: true, }, }, }, }, }, }, }
View Source
var SetTime = Function{ Name: "set time", Description: []string{ "Sets the access controller system date and time.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "date-time", Type: "datetime", Description: "date/time to which to set controller system time", }, }, Request: requests.SetTimeRequest.Message, Response: responses.SetTimeResponse.Message, Tests: []FuncTest{ { Name: "set-time", Args: []Arg{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "date-time", Type: "datetime", Value: "2025-11-04 12:34:56", }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x30, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x20, 0x25, 0x11, 0x01, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "date-time", Type: "datetime", Value: "2025-11-01 12:34:56", }, }, }, }, }, }, }
View Source
var SetTimeProfile = Function{ Name: "set time profile", Description: []string{ "Adds or updates an access time profile stored on a controller.", }, Args: []Arg{ { Name: "controller", Type: "controller", Description: "uint32|Controller controller serial number or {id, address, protocol} Controller struct", }, { Name: "profile", Type: "uint8", Description: "profile Id ([2..254] to create/update", }, { Name: "start date", Type: "date", Description: "date from which profile is valid (inclusive)", }, { Name: "end date", Type: "date", Description: "date after which profile is invalid", }, { Name: "monday", Type: "bool", Description: "profile valid on Monday if true", }, { Name: "tuesday", Type: "bool", Description: "profile valid on Tuesday if true", }, { Name: "wednesday", Type: "bool", Description: "profile valid on Wednesday if true", }, { Name: "thursday", Type: "bool", Description: "profile valid on Thursday if true", }, { Name: "friday", Type: "bool", Description: "profile valid on Friday if true", }, { Name: "saturday", Type: "bool", Description: "profile valid on Saturday if true", }, { Name: "sunday", Type: "bool", Description: "profile valid on Sunday if true", }, { Name: "segment 1 start", Type: "HHmm", Description: "start time for first time segment", }, { Name: "segment 1 end", Type: "HHmm", Description: "end time for first time segment", }, { Name: "segment 2 start", Type: "HHmm", Description: "start time for second time segment", }, { Name: "segment 2 end", Type: "HHmm", Description: "end time for second time segment", }, { Name: "segment 3 start", Type: "HHmm", Description: "start time for third time segment", }, { Name: "segment 3 end", Type: "HHmm", Description: "end time for third time segment", }, { Name: "linked profile id", Type: "uint8", Description: "ID of linked profile (0 if not linked)", }, }, Request: requests.SetTimeProfileRequest.Message, Response: responses.SetTimeProfileResponse.Message, Tests: []FuncTest{ { 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, }, }, Request: []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, }, Replies: []Reply{ { Message: []byte{ 0x17, 0x88, 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, }, Response: []Value{ { Name: "controller", Type: "uint32", Value: 405419896, }, { Name: "ok", Type: "uint8", Value: true, }, }, }, }, }, }, }
Functions ¶
This section is empty.
Types ¶
Source Files
¶
- activate-keypads.go
- add-task.go
- clear-tasklist.go
- clear-time-profiles.go
- delete-all-cards.go
- delete-card.go
- functions.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
- 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.