Documentation ¶
Index ¶
Constants ¶
View Source
const CARD = "8165538"
View Source
const CARD_INDEX = "3"
View Source
const CONTROLLER = "405419896"
View Source
const DOOR = "3"
View Source
const EVENT_INDEX = "37"
View Source
const TIME_PROFILE_ID = "29"
Variables ¶
View Source
var ActivateKeypads = Function{ Name: "activate keypads", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "reader 1", Type: "bool", }, Arg{ Name: "reader 2", Type: "bool", }, Arg{ Name: "reader 3", Type: "bool", }, Arg{ Name: "reader 4", Type: "bool", }, }, Request: &ActivateKeypadsRequest, Response: &ActivateKeypadsResponse, }
View Source
var ActivateKeypadsRequest = Message{ Name: "activate keypads request", MsgType: 0xa4, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "reader 1", Type: "bool", Offset: 8, }, Field{ Name: "reader 2", Type: "bool", Offset: 9, }, Field{ Name: "reader 3", Type: "bool", Offset: 10, }, Field{ Name: "reader 4", Type: "bool", Offset: 11, }, }, }
View Source
var ActivateKeypadsResponse = Message{ Name: "activate keypads response", MsgType: 0xa4, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "ok", Type: "bool", Offset: 8, }, }, }
View Source
var ActivateKeypadsTest = Test{ Name: "activate keypads", Request: &Request{ Name: ActivateKeypadsRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "reader 1", Type: "bool", Value: "true", }, Value{ Name: "reader 2", Type: "bool", Value: "true", }, Value{ Name: "reader 3", Type: "bool", Value: "false", }, Value{ Name: "reader 4", Type: "bool", Value: "true", }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: ActivateKeypadsResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "ok", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var AddTask = Function{ Name: "add task", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "start date", Type: "date", }, Arg{ Name: "end date", Type: "date", }, Arg{ Name: "monday", Type: "bool", }, Arg{ Name: "tuesday", Type: "bool", }, Arg{ Name: "wednesday", Type: "bool", }, Arg{ Name: "thursday", Type: "bool", }, Arg{ Name: "friday", Type: "bool", }, Arg{ Name: "saturday", Type: "bool", }, Arg{ Name: "sunday", Type: "bool", }, Arg{ Name: "start time", Type: "HHmm", }, Arg{ Name: "door", Type: "uint8", }, Arg{ Name: "task type", Type: "uint8", }, Arg{ Name: "more cards", Type: "uint8", }, }, Request: &AddTaskRequest, Response: &AddTaskResponse, }
View Source
var AddTaskRequest = Message{ Name: "add task request", MsgType: 0xa8, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "start date", Type: "date", Offset: 8, }, Field{ Name: "end date", Type: "date", Offset: 12, }, Field{ Name: "monday", Type: "bool", Offset: 16, }, Field{ Name: "tuesday", Type: "bool", Offset: 17, }, Field{ Name: "wednesday", Type: "bool", Offset: 18, }, Field{ Name: "thursday", Type: "bool", Offset: 19, }, Field{ Name: "friday", Type: "bool", Offset: 20, }, Field{ Name: "saturday", Type: "bool", Offset: 21, }, Field{ Name: "sunday", Type: "bool", Offset: 22, }, Field{ Name: "start time", Type: "HHmm", Offset: 23, }, Field{ Name: "door", Type: "uint8", Offset: 25, }, Field{ Name: "task type", Type: "uint8", Offset: 26, }, Field{ Name: "more cards", Type: "uint8", Offset: 27, }, }, }
View Source
var AddTaskResponse = Message{ Name: "add task response", MsgType: 0xa8, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "added", Type: "bool", Offset: 8, }, }, }
View Source
var AddTaskTest = Test{ Name: "add task", Request: &Request{ Name: AddTaskRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "start date", Type: "date", Value: "2022-01-01", }, Value{ Name: "end date", Type: "date", Value: "2022-12-31", }, Value{ Name: "monday", Type: "bool", Value: "true", }, Value{ Name: "tuesday", Type: "bool", Value: "false", }, Value{ Name: "wednesday", Type: "bool", Value: "true", }, Value{ Name: "thursday", Type: "bool", Value: "true", }, Value{ Name: "friday", Type: "bool", Value: "false", }, Value{ Name: "saturday", Type: "bool", Value: "false", }, Value{ Name: "sunday", Type: "bool", Value: "true", }, Value{ Name: "start time", Type: "HHmm", Value: "08:30", }, Value{ Name: "door", Type: "uint8", Value: "3", }, Value{ Name: "task type", Type: "uint8", Value: "2", }, Value{ Name: "more cards", Type: "uint8", Value: "17", }, }, Message: []uint8{ 0x17, 0xa8, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x20, 0x22, 0x01, 0x01, 0x20, 0x22, 0x12, 0x31, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x08, 0x30, 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, }, }, Response: &Response{ Name: AddTaskResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "added", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var ClearTaskList = Function{ Name: "clear tasklist", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, }, Request: &ClearTaskListRequest, Response: &ClearTaskListResponse, }
View Source
var ClearTaskListRequest = Message{ Name: "clear tasklist request", MsgType: 0xa6, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "", Type: "magic", Offset: 8, }, }, }
View Source
var ClearTaskListResponse = Message{ Name: "clear tasklist response", MsgType: 0xa6, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "cleared", Type: "bool", Offset: 8, }, }, }
View Source
var ClearTaskListTest = Test{ Name: "clear tasklist", Request: &Request{ Name: ClearTaskListRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: ClearTaskListResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "cleared", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var DeleteAllCards = Function{ Name: "delete all cards", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, }, Request: &DeleteAllCardsRequest, Response: &DeleteAllCardsResponse, }
View Source
var DeleteAllCardsRequest = Message{ Name: "delete cards request", MsgType: 0x54, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "", Type: "magic", Offset: 8, }, }, }
View Source
var DeleteAllCardsResponse = Message{ Name: "delete all cards response", MsgType: 0x54, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "deleted", Type: "bool", Offset: 8, }, }, }
View Source
var DeleteAllCardsTest = Test{ Name: "delete cards", Request: &Request{ Name: DeleteAllCardsRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: DeleteAllCardsResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "deleted", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var DeleteAllTimeProfiles = Function{ Name: "delete all time profiles", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, }, Request: &DeleteAllTimeProfilesRequest, Response: &DeleteAllTimeProfilesResponse, }
View Source
var DeleteAllTimeProfilesRequest = Message{ Name: "delete all time profiles request", MsgType: 0x8a, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "", Type: "magic", Offset: 8, }, }, }
View Source
var DeleteAllTimeProfilesResponse = Message{ Name: "delete all time profiles response", MsgType: 0x8a, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "deleted", Type: "bool", Offset: 8, }, }, }
View Source
var DeleteAllTimeProfilesTest = Test{ Name: "delete all time profiles", Request: &Request{ Name: DeleteAllTimeProfilesRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: DeleteAllTimeProfilesResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "deleted", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var DeleteCard = Function{ Name: "delete card", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "card number", Type: "uint32", }, }, Request: &DeleteCardRequest, Response: &DeleteCardResponse, }
View Source
var DeleteCardRequest = Message{ Name: "delete card request", MsgType: 0x52, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "card number", Type: "uint32", Offset: 8, }, }, }
View Source
var DeleteCardResponse = Message{ Name: "delete card response", MsgType: 0x52, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "deleted", Type: "bool", Offset: 8, }, }, }
View Source
var DeleteCardTest = Test{ Name: "delete card", Request: &Request{ Name: DeleteCardRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "card", Type: "uint32", Value: CARD, }, }, Message: []uint8{ 0x17, 0x52, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa2, 0x98, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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: &Response{ Name: DeleteCardResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "deleted", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var Event = Message{ Name: "event", MsgType: 0x20, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "event index", Type: "uint32", Offset: 8, }, Field{ Name: "event type", Type: "uint8", Offset: 12, }, Field{ Name: "event access granted", Type: "bool", Offset: 13, }, Field{ Name: "event door", Type: "uint8", Offset: 14, }, Field{ Name: "event direction", Type: "uint8", Offset: 15, }, Field{ Name: "event card", Type: "uint32", Offset: 16, }, Field{ Name: "event timestamp", Type: "datetime", Offset: 20, }, Field{ Name: "event reason", Type: "uint8", Offset: 27, }, Field{ Name: "system date", Type: "shortdate", Offset: 51, }, Field{ Name: "system time", Type: "time", Offset: 37, }, Field{ Name: "system error", Type: "uint8", Offset: 36, }, Field{ Name: "door 1 open", Type: "bool", Offset: 28, }, Field{ Name: "door 2 open", Type: "bool", Offset: 29, }, Field{ Name: "door 3 open", Type: "bool", Offset: 30, }, Field{ Name: "door 4 open", Type: "bool", Offset: 31, }, Field{ Name: "door 1 button", Type: "bool", Offset: 32, }, Field{ Name: "door 2 button", Type: "bool", Offset: 33, }, Field{ Name: "door 3 button", Type: "bool", Offset: 34, }, Field{ Name: "door 4 button", Type: "bool", Offset: 35, }, Field{ Name: "relays", Type: "uint8", Offset: 49, }, Field{ Name: "inputs", Type: "uint8", Offset: 50, }, Field{ Name: "special info", Type: "uint8", Offset: 48, }, Field{ Name: "sequence no", Type: "uint32", Offset: 40, }, }, }
View Source
var Functions = []Function{ GetController, SetIP, GetTime, SetTime, GetStatus, GetListener, SetListener, GetDoorControl, SetDoorControl, OpenDoor, GetCards, GetCard, GetCardByIndex, PutCard, DeleteCard, DeleteAllCards, GetEvent, GetEventIndex, SetEventIndex, RecordSpecialEvents, GetTimeProfile, SetTimeProfile, DeleteAllTimeProfiles, AddTask, RefreshTaskList, ClearTaskList, SetPCControl, SetInterlock, ActivateKeypads, SetDoorPasscodes, }
View Source
var GetCard = Function{ Name: "get card", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "card number", Type: "uint32", }, }, Request: &GetCardRequest, Response: &GetCardResponse, }
View Source
var GetCardByIndex = Function{ Name: "get card by index", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "card index", Type: "uint32", }, }, Request: &GetCardByIndexRequest, Response: &GetCardByIndexResponse, }
View Source
var GetCardByIndexRequest = Message{ Name: "get card by index request", MsgType: 0x5c, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "card index", Type: "uint32", Offset: 8, }, }, }
View Source
var GetCardByIndexResponse = Message{ Name: "get card by index response", MsgType: 0x5c, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "card number", Type: "uint32", Offset: 8, }, Field{ Name: "start date", Type: "optional date", Offset: 12, }, Field{ Name: "end date", Type: "optional date", Offset: 16, }, Field{ Name: "door 1", Type: "uint8", Offset: 20, }, Field{ Name: "door 2", Type: "uint8", Offset: 21, }, Field{ Name: "door 3", Type: "uint8", Offset: 22, }, Field{ Name: "door 4", Type: "uint8", Offset: 23, }, Field{ Name: "PIN", Type: "pin", Offset: 24, }, }, }
View Source
var GetCardByIndexTest = Test{ Name: "get card by index", Request: &Request{ Name: GetCardByIndexRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "index", Type: "uint32", Value: CARD_INDEX, }, }, Message: []uint8{ 0x17, 0x5c, 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, }, }, Response: &Response{ Name: GetCardByIndexResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "card number", Type: "uint32", Value: CARD, }, Value{ Name: "start date", Type: "optional date", Value: "2022-01-01", }, Value{ Name: "end date", Type: "optional date", Value: "2022-12-31", }, Value{ Name: "door 1", Type: "uint8", Value: 0, }, Value{ Name: "door 2", Type: "uint8", Value: 1, }, Value{ Name: "door 3", Type: "uint8", Value: 29, }, Value{ Name: "door 4", Type: "uint8", Value: 0, }, Value{ Name: "PIN", Type: "pin", Value: 7531, }, }, Message: []uint8{ 0x17, 0x5c, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa2, 0x98, 0x7c, 0x00, 0x20, 0x22, 0x01, 0x01, 0x20, 0x22, 0x12, 0x31, 0x00, 0x01, 0x1d, 0x00, 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, }, }, }
View Source
var GetCardRequest = Message{ Name: "get card request", MsgType: 0x5a, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "card number", Type: "uint32", Offset: 8, }, }, }
View Source
var GetCardResponse = Message{ Name: "get card response", MsgType: 0x5a, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "card number", Type: "uint32", Offset: 8, }, Field{ Name: "start date", Type: "optional date", Offset: 12, }, Field{ Name: "end date", Type: "optional date", Offset: 16, }, Field{ Name: "door 1", Type: "uint8", Offset: 20, }, Field{ Name: "door 2", Type: "uint8", Offset: 21, }, Field{ Name: "door 3", Type: "uint8", Offset: 22, }, Field{ Name: "door 4", Type: "uint8", Offset: 23, }, Field{ Name: "PIN", Type: "pin", Offset: 24, }, }, }
View Source
var GetCardTest = Test{ Name: "get card", Request: &Request{ Name: GetCardRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "card", Type: "uint32", Value: CARD, }, }, Message: []uint8{ 0x17, 0x5a, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa2, 0x98, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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: &Response{ Name: GetCardResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "card number", Type: "uint32", Value: CARD, }, Value{ Name: "start date", Type: "optional date", Value: "2022-01-01", }, Value{ Name: "end date", Type: "optional date", Value: "2022-12-31", }, Value{ Name: "door 1", Type: "uint8", Value: 0, }, Value{ Name: "door 2", Type: "uint8", Value: 1, }, Value{ Name: "door 3", Type: "uint8", Value: 29, }, Value{ Name: "door 4", Type: "uint8", Value: 0, }, Value{ Name: "PIN", Type: "pin", Value: 7531, }, }, Message: []uint8{ 0x17, 0x5a, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa2, 0x98, 0x7c, 0x00, 0x20, 0x22, 0x01, 0x01, 0x20, 0x22, 0x12, 0x31, 0x00, 0x01, 0x1d, 0x00, 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, }, }, }
View Source
var GetCards = Function{ Name: "get cards", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, }, Request: &GetCardsRequest, Response: &GetCardsResponse, }
View Source
var GetCardsRequest = Message{ Name: "get cards request", MsgType: 0x58, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, }, }
View Source
var GetCardsResponse = Message{ Name: "get cards response", MsgType: 0x58, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "cards", Type: "uint32", Offset: 8, }, }, }
View Source
var GetCardsTest = Test{ Name: "get cards", Request: &Request{ Name: GetCardsRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: GetCardsResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "cards", Type: "uint32", Value: 11, }, }, Message: []uint8{ 0x17, 0x58, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 GetController = Function{ Name: "get controller", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, }, Request: &GetControllerRequest, Response: &GetControllerResponse, }
View Source
var GetControllerRequest = Message{ Name: "get controller request", MsgType: 0x94, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, }, }
View Source
var GetControllerResponse = Message{ Name: "get controller response", MsgType: 0x94, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "ip address", Type: "IPv4", Offset: 8, }, Field{ Name: "subnet mask", Type: "IPv4", Offset: 12, }, Field{ Name: "gateway", Type: "IPv4", Offset: 16, }, Field{ Name: "MAC address", Type: "MAC", Offset: 20, }, Field{ Name: "version", Type: "version", Offset: 26, }, Field{ Name: "date", Type: "date", Offset: 28, }, }, }
View Source
var GetControllerTest = Test{ Name: "get controller", Request: &Request{ Name: GetControllerRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: GetControllerResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "ip address", Type: "IPv4", Value: "192.168.1.100", }, Value{ Name: "subnet mask", Type: "IPv4", Value: "255.255.255.0", }, Value{ Name: "gateway", Type: "IPv4", Value: "192.168.1.1", }, Value{ Name: "MAC address", Type: "string", Value: "00:12:23:34:45:56", }, Value{ Name: "version", Type: "string", Value: "v8.92", }, Value{ Name: "date", Type: "date", Value: "2018-11-05", }, }, Message: []uint8{ 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, }, }, }
View Source
var GetDoorControl = Function{ Name: "get door control", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "door", Type: "uint8", }, }, Request: &GetDoorControlRequest, Response: &GetDoorControlResponse, }
View Source
var GetDoorControlRequest = Message{ Name: "get door control request", MsgType: 0x82, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "door", Type: "uint8", Offset: 8, }, }, }
View Source
var GetDoorControlResponse = Message{ Name: "get door control response", MsgType: 0x82, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "door", Type: "uint8", Offset: 8, }, Field{ Name: "mode", Type: "uint8", Offset: 9, }, Field{ Name: "delay", Type: "uint8", Offset: 10, }, }, }
View Source
var GetDoorControlTest = Test{ Name: "get door control", Request: &Request{ Name: GetDoorControlRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "door", Type: "uint8", Value: 3, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: GetDoorControlResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "door", Type: "uint8", Value: 3, }, Value{ Name: "mode", Type: "uint8", Value: 2, }, Value{ Name: "delay", Type: "uint8", Value: 10, }, }, Message: []uint8{ 0x17, 0x82, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x03, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 GetEvent = Function{ Name: "get event", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "event index", Type: "uint32", }, }, Request: &GetEventRequest, Response: &GetEventResponse, }
View Source
var GetEventIndex = Function{ Name: "get event index", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, }, Request: &GetEventIndexRequest, Response: &GetEventIndexResponse, }
View Source
var GetEventIndexRequest = Message{ Name: "get event index request", MsgType: 0xb4, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, }, }
View Source
var GetEventIndexResponse = Message{ Name: "get event index response", MsgType: 0xb4, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "event index", Type: "uint32", Offset: 8, }, }, }
View Source
var GetEventIndexTest = Test{ Name: "get event index", Request: &Request{ Name: GetEventIndexRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: GetEventIndexResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "event index", Type: "uint32", Value: "37", }, }, Message: []uint8{ 0x17, 0xb4, 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 GetEventRequest = Message{ Name: "get event request", MsgType: 0xb0, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "event index", Type: "uint32", Offset: 8, }, }, }
View Source
var GetEventResponse = Message{ Name: "get event response", MsgType: 0xb0, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "index", Type: "uint32", Offset: 8, }, Field{ Name: "event type", Type: "uint8", Offset: 12, }, Field{ Name: "access granted", Type: "bool", Offset: 13, }, Field{ Name: "door", Type: "uint8", Offset: 14, }, Field{ Name: "direction", Type: "uint8", Offset: 15, }, Field{ Name: "card", Type: "uint32", Offset: 16, }, Field{ Name: "timestamp", Type: "optional datetime", Offset: 20, }, Field{ Name: "reason", Type: "uint8", Offset: 27, }, }, }
View Source
var GetEventTest = Test{ Name: "get event", Request: &Request{ Name: GetEventRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "index", Type: "uint32", Value: EVENT_INDEX, }, }, Message: []uint8{ 0x17, 0xb0, 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, }, }, Response: &Response{ Name: GetEventResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "index", Type: "uint32", Value: EVENT_INDEX, }, Value{ Name: "event type", Type: "uint8", Value: 2, }, Value{ Name: "access granted", Type: "bool", Value: true, }, Value{ Name: "door", Type: "uint8", Value: 4, }, Value{ Name: "direction", Type: "uint8", Value: 1, }, Value{ Name: "card", Type: "uint32", Value: "8165536", }, Value{ Name: "timestamp", Type: "optional datetime", Value: "2019-08-04 20:02:07", }, Value{ Name: "reason", Type: "uint8", Value: 6, }, }, Message: []uint8{ 0x17, 0xb0, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x25, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x01, 0xa0, 0x98, 0x7c, 0x00, 0x20, 0x19, 0x08, 0x04, 0x20, 0x02, 0x07, 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, }, }, }
View Source
var GetListener = Function{ Name: "get listener", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, }, Request: &GetListenerRequest, Response: &GetListenerResponse, }
View Source
var GetListenerRequest = Message{ Name: "get listener request", MsgType: 0x92, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, }, }
View Source
var GetListenerResponse = Message{ Name: "get listener response", MsgType: 0x92, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "address", Type: "IPv4", Offset: 8, }, Field{ Name: "port", Type: "uint16", Offset: 12, }, }, }
View Source
var GetListenerTest = Test{ Name: "get listener", Request: &Request{ Name: GetListenerRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: GetListenerResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "address", Type: "IPv4", Value: "192.168.1.100", }, Value{ Name: "port", Type: "uint16", Value: "60001", }, }, Message: []uint8{ 0x17, 0x92, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xc0, 0xa8, 0x01, 0x64, 0x61, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 GetStatus = Function{ Name: "get status", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, }, Request: &GetStatusRequest, Response: &GetStatusResponse, }
View Source
var GetStatusNoEventTest = Test{ Name: "get status no event", Request: &Request{ Name: GetStatusRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: GetStatusResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "system date", Type: "short date", Value: "2022-08-23", }, Value{ Name: "system time", Type: "time", Value: "09:49:39", }, Value{ Name: "door 1 open", Type: "bool", Value: false, }, Value{ Name: "door 2 open", Type: "bool", Value: true, }, Value{ Name: "door 3 open", Type: "bool", Value: false, }, Value{ Name: "door 4 open", Type: "bool", Value: false, }, Value{ Name: "door 1 button", Type: "bool", Value: false, }, Value{ Name: "door 2 button", Type: "bool", Value: false, }, Value{ Name: "door 3 button", Type: "bool", Value: false, }, Value{ Name: "door 4 button", Type: "bool", Value: true, }, Value{ Name: "relays", Type: "uint8", Value: "7", }, Value{ Name: "inputs", Type: "uint8", Value: "9", }, Value{ Name: "system error", Type: "uint8", Value: 3, }, Value{ Name: "special info", Type: "uint8", Value: 39, }, Value{ Name: "event index", Type: "uint32", Value: 0, }, Value{ Name: "event type", Type: "uint8", Value: 0, }, Value{ Name: "event access granted", Type: "bool", Value: false, }, Value{ Name: "event door", Type: "uint8", Value: 0, }, Value{ Name: "event direction", Type: "uint8", Value: 0, }, Value{ Name: "event card", Type: "uint32", Value: "0", }, Value{ Name: "event timestamp", Type: "optional datetime", Value: "", }, Value{ Name: "event reason", Type: "uint8", Value: 0, }, Value{ Name: "sequence no", Type: "uint32", Value: 0, }, }, Message: []uint8{ 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, 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, }, }, }
View Source
var GetStatusRequest = Message{ Name: "get status request", MsgType: 0x20, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, }, }
View Source
var GetStatusResponse = Message{ Name: "get status response", MsgType: 0x20, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "system date", Type: "shortdate", Offset: 51, }, Field{ Name: "system time", Type: "time", Offset: 37, }, Field{ Name: "door 1 open", Type: "bool", Offset: 28, }, Field{ Name: "door 2 open", Type: "bool", Offset: 29, }, Field{ Name: "door 3 open", Type: "bool", Offset: 30, }, Field{ Name: "door 4 open", Type: "bool", Offset: 31, }, Field{ Name: "door 1 button", Type: "bool", Offset: 32, }, Field{ Name: "door 2 button", Type: "bool", Offset: 33, }, Field{ Name: "door 3 button", Type: "bool", Offset: 34, }, Field{ Name: "door 4 button", Type: "bool", Offset: 35, }, Field{ Name: "relays", Type: "uint8", Offset: 49, }, Field{ Name: "inputs", Type: "uint8", Offset: 50, }, Field{ Name: "system error", Type: "uint8", Offset: 36, }, Field{ Name: "special info", Type: "uint8", Offset: 48, }, Field{ Name: "event index", Type: "uint32", Offset: 8, }, Field{ Name: "event type", Type: "uint8", Offset: 12, }, Field{ Name: "event access granted", Type: "bool", Offset: 13, }, Field{ Name: "event door", Type: "uint8", Offset: 14, }, Field{ Name: "event direction", Type: "uint8", Offset: 15, }, Field{ Name: "event card", Type: "uint32", Offset: 16, }, Field{ Name: "event timestamp", Type: "optional datetime", Offset: 20, }, Field{ Name: "event reason", Type: "uint8", Offset: 27, }, Field{ Name: "sequence no", Type: "uint32", Offset: 40, }, }, }
View Source
var GetStatusTest = Test{ Name: "get status", Request: &Request{ Name: GetStatusRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: GetStatusResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "system date", Type: "short date", Value: "2022-08-23", }, Value{ Name: "system time", Type: "time", Value: "09:49:39", }, Value{ Name: "door 1 open", Type: "bool", Value: false, }, Value{ Name: "door 2 open", Type: "bool", Value: true, }, Value{ Name: "door 3 open", Type: "bool", Value: false, }, Value{ Name: "door 4 open", Type: "bool", Value: false, }, Value{ Name: "door 1 button", Type: "bool", Value: false, }, Value{ Name: "door 2 button", Type: "bool", Value: false, }, Value{ Name: "door 3 button", Type: "bool", Value: false, }, Value{ Name: "door 4 button", Type: "bool", Value: true, }, Value{ Name: "relays", Type: "uint8", Value: "7", }, Value{ Name: "inputs", Type: "uint8", Value: "9", }, Value{ Name: "system error", Type: "uint8", Value: 3, }, Value{ Name: "special info", Type: "uint8", Value: 39, }, Value{ Name: "event index", Type: "uint32", Value: 78, }, Value{ Name: "event type", Type: "uint8", Value: 2, }, Value{ Name: "event access granted", Type: "bool", Value: true, }, Value{ Name: "event door", Type: "uint8", Value: 3, }, Value{ Name: "event direction", Type: "uint8", Value: 1, }, Value{ Name: "event card", Type: "uint32", Value: "8165537", }, Value{ Name: "event timestamp", Type: "optional datetime", Value: "2022-08-23 09:47:06", }, Value{ Name: "event reason", Type: "uint8", Value: 44, }, Value{ Name: "sequence no", Type: "uint32", Value: 0, }, }, Message: []uint8{ 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, }, }, }
View Source
var GetTime = Function{ Name: "get time", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, }, Request: &GetTimeRequest, Response: &GetTimeResponse, }
View Source
var GetTimeProfile = Function{ Name: "get time profile", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "profile id", Type: "uint8", }, }, Request: &GetTimeProfileRequest, Response: &GetTimeProfileResponse, }
View Source
var GetTimeProfileRequest = Message{ Name: "get time profile request", MsgType: 0x98, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "profile id", Type: "uint8", Offset: 8, }, }, }
View Source
var GetTimeProfileResponse = Message{ Name: "get time profile response", MsgType: 0x98, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "profile id", Type: "uint8", Offset: 8, }, Field{ Name: "start date", Type: "optional date", Offset: 9, }, Field{ Name: "end date", Type: "optional date", Offset: 13, }, Field{ Name: "monday", Type: "bool", Offset: 17, }, Field{ Name: "tuesday", Type: "bool", Offset: 18, }, Field{ Name: "wednesday", Type: "bool", Offset: 19, }, Field{ Name: "thursday", Type: "bool", Offset: 20, }, Field{ Name: "friday", Type: "bool", Offset: 21, }, Field{ Name: "saturday", Type: "bool", Offset: 22, }, Field{ Name: "sunday", Type: "bool", Offset: 23, }, Field{ Name: "segment 1 start", Type: "HHmm", Offset: 24, }, Field{ Name: "segment 1 end", Type: "HHmm", Offset: 26, }, Field{ Name: "segment 2 start", Type: "HHmm", Offset: 28, }, Field{ Name: "segment 2 end", Type: "HHmm", Offset: 30, }, Field{ Name: "segment 3 start", Type: "HHmm", Offset: 32, }, Field{ Name: "segment 3 end", Type: "HHmm", Offset: 34, }, Field{ Name: "linked profile id", Type: "uint8", Offset: 36, }, }, }
View Source
var GetTimeProfileTest = Test{ Name: "get time profile", Request: &Request{ Name: GetTimeProfileRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "profile id", Type: "uint8", Value: TIME_PROFILE_ID, }, }, Message: []uint8{ 0x17, 0x98, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, }, Response: &Response{ Name: GetTimeProfileResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "profile id", Type: "uint8", Value: 29, }, Value{ Name: "start date", Type: "optional date", Value: "2022-01-01", }, Value{ Name: "end date", Type: "optional date", Value: "2022-12-31", }, Value{ Name: "monday", Type: "bool", Value: true, }, Value{ Name: "tuesday", Type: "bool", Value: false, }, Value{ Name: "wednesday", Type: "bool", Value: true, }, Value{ Name: "thursday", Type: "bool", Value: true, }, Value{ Name: "friday", Type: "bool", Value: false, }, Value{ Name: "saturday", Type: "bool", Value: false, }, Value{ Name: "sunday", Type: "bool", Value: true, }, Value{ Name: "segment 1 start", Type: "HHmm", Value: "08:30", }, Value{ Name: "segment 1 end", Type: "HHmm", Value: "11:45", }, Value{ Name: "segment 2 start", Type: "HHmm", Value: "13:00", }, Value{ Name: "segment 2 end", Type: "HHmm", Value: "17:15", }, Value{ Name: "segment 3 start", Type: "HHmm", Value: "19:15", }, Value{ Name: "segment 3 end", Type: "HHmm", Value: "21:05", }, Value{ Name: "linked profile id", Type: "uint8", Value: 31, }, }, Message: []uint8{ 0x17, 0x98, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x1d, 0x20, 0x22, 0x01, 0x01, 0x20, 0x22, 0x12, 0x31, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x08, 0x30, 0x11, 0x45, 0x13, 0x00, 0x17, 0x15, 0x19, 0x15, 0x21, 0x05, 0x1f, 0x00, 0x00, 0x00, 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 = Message{ Name: "get time request", MsgType: 0x32, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, }, }
View Source
var GetTimeResponse = Message{ Name: "get time response", MsgType: 0x32, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "datetime", Type: "datetime", Offset: 8, }, }, }
View Source
var GetTimeTest = Test{ Name: "get time", Request: &Request{ Name: GetTimeRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: GetTimeResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "datetime", Type: "datetime", Value: "2022-08-23 09:48:09", }, }, Message: []uint8{ 0x17, 0x32, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x20, 0x22, 0x08, 0x23, 0x09, 0x48, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 OpenDoor = Function{ Name: "open door", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "door", Type: "uint8", }, }, Request: &OpenDoorRequest, Response: &OpenDoorResponse, }
View Source
var OpenDoorRequest = Message{ Name: "open door request", MsgType: 0x40, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "door", Type: "uint8", Offset: 8, }, }, }
View Source
var OpenDoorResponse = Message{ Name: "open door response", MsgType: 0x40, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "opened", Type: "bool", Offset: 8, }, }, }
View Source
var OpenDoorTest = Test{ Name: "open door", Request: &Request{ Name: OpenDoorRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "door", Type: "uint8", Value: "3", }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: OpenDoorResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "opened", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var PutCard = Function{ Name: "put card", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "card number", Type: "uint32", }, Arg{ Name: "start date", Type: "date", }, Arg{ Name: "end date", Type: "date", }, Arg{ Name: "door 1", Type: "uint8", }, Arg{ Name: "door 2", Type: "uint8", }, Arg{ Name: "door 3", Type: "uint8", }, Arg{ Name: "door 4", Type: "uint8", }, Arg{ Name: "PIN", Type: "pin", }, }, Request: &PutCardRequest, Response: &PutCardResponse, }
View Source
var PutCardRequest = Message{ Name: "put card request", MsgType: 0x50, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "card number", Type: "uint32", Offset: 8, }, Field{ Name: "start date", Type: "date", Offset: 12, }, Field{ Name: "end date", Type: "date", Offset: 16, }, Field{ Name: "door 1", Type: "uint8", Offset: 20, }, Field{ Name: "door 2", Type: "uint8", Offset: 21, }, Field{ Name: "door 3", Type: "uint8", Offset: 22, }, Field{ Name: "door 4", Type: "uint8", Offset: 23, }, Field{ Name: "PIN", Type: "pin", Offset: 24, }, }, }
View Source
var PutCardResponse = Message{ Name: "put card response", MsgType: 0x50, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "stored", Type: "bool", Offset: 8, }, }, }
View Source
var PutCardTest = Test{ Name: "put card", Request: &Request{ Name: PutCardRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "card", Type: "uint32", Value: CARD, }, Value{ Name: "start date", Type: "date", Value: "2022-01-01", }, Value{ Name: "end date", Type: "date", Value: "2022-12-31", }, Value{ Name: "door1", Type: "uint8", Value: "0", }, Value{ Name: "door2", Type: "uint8", Value: "1", }, Value{ Name: "door3", Type: "uint8", Value: "29", }, Value{ Name: "door4", Type: "uint8", Value: "0", }, Value{ Name: "PIN", Type: "pin", Value: "7531", }, }, Message: []uint8{ 0x17, 0x50, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xa2, 0x98, 0x7c, 0x00, 0x20, 0x22, 0x01, 0x01, 0x20, 0x22, 0x12, 0x31, 0x00, 0x01, 0x1d, 0x00, 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: &Response{ Name: PutCardResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "stored", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var RecordSpecialEvents = Function{ Name: "record special events", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "enable", Type: "bool", }, }, Request: &RecordSpecialEventsRequest, Response: &RecordSpecialEventsResponse, }
View Source
var RecordSpecialEventsRequest = Message{ Name: "record special events request", MsgType: 0x8e, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "enable", Type: "bool", Offset: 8, }, }, }
View Source
var RecordSpecialEventsResponse = Message{ Name: "record special events response", MsgType: 0x8e, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "updated", Type: "bool", Offset: 8, }, }, }
View Source
var RecordSpecialEventsTest = Test{ Name: "record special events", Request: &Request{ Name: RecordSpecialEventsRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "enabled", Type: "bool", Value: "true", }, }, Message: []uint8{ 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: &Response{ Name: RecordSpecialEventsResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "updated", Type: "bool", Value: true, }, }, Message: []uint8{ 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 RefreshTaskList = Function{ Name: "refresh tasklist", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, }, Request: &RefreshTaskListRequest, Response: &RefreshTaskListResponse, }
View Source
var RefreshTaskListRequest = Message{ Name: "refresh tasklist request", MsgType: 0xac, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "", Type: "magic", Offset: 8, }, }, }
View Source
var RefreshTaskListResponse = Message{ Name: "refresh tasklist response", MsgType: 0xac, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "refreshed", Type: "bool", Offset: 8, }, }, }
View Source
var RefreshTaskListTest = Test{ Name: "refresh tasklist", Request: &Request{ Name: RefreshTaskListRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: RefreshTaskListResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "refreshed", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var Requests = []Message{ GetControllerRequest, SetIPRequest, GetTimeRequest, SetTimeRequest, GetStatusRequest, GetListenerRequest, SetListenerRequest, GetDoorControlRequest, SetDoorControlRequest, OpenDoorRequest, GetCardsRequest, GetCardRequest, GetCardByIndexRequest, PutCardRequest, DeleteCardRequest, DeleteAllCardsRequest, GetEventRequest, GetEventIndexRequest, SetEventIndexRequest, RecordSpecialEventsRequest, GetTimeProfileRequest, SetTimeProfileRequest, DeleteAllTimeProfilesRequest, AddTaskRequest, RefreshTaskListRequest, ClearTaskListRequest, SetPCControlRequest, SetInterlockRequest, ActivateKeypadsRequest, SetDoorPasscodesRequest, }
View Source
var Responses = []Message{ GetControllerResponse, GetTimeResponse, SetTimeResponse, GetStatusResponse, GetListenerResponse, SetListenerResponse, GetDoorControlResponse, SetDoorControlResponse, OpenDoorResponse, GetCardsResponse, GetCardResponse, GetCardByIndexResponse, PutCardResponse, DeleteCardResponse, DeleteAllCardsResponse, GetEventResponse, GetEventIndexResponse, SetEventIndexResponse, RecordSpecialEventsResponse, GetTimeProfileResponse, SetTimeProfileResponse, DeleteAllTimeProfilesResponse, AddTaskResponse, RefreshTaskListResponse, ClearTaskListResponse, SetPCControlResponse, SetInterlockResponse, ActivateKeypadsResponse, SetDoorPasscodesResponse, }
View Source
var SetDoorControl = Function{ Name: "set door control", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "door", Type: "uint8", }, Arg{ Name: "mode", Type: "uint8", }, Arg{ Name: "delay", Type: "uint8", }, }, Request: &SetDoorControlRequest, Response: &SetDoorControlResponse, }
View Source
var SetDoorControlRequest = Message{ Name: "set door control request", MsgType: 0x80, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "door", Type: "uint8", Offset: 8, }, Field{ Name: "mode", Type: "uint8", Offset: 9, }, Field{ Name: "delay", Type: "uint8", Offset: 10, }, }, }
View Source
var SetDoorControlResponse = Message{ Name: "set door control response", MsgType: 0x80, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "door", Type: "uint8", Offset: 8, }, Field{ Name: "mode", Type: "uint8", Offset: 9, }, Field{ Name: "delay", Type: "uint8", Offset: 10, }, }, }
View Source
var SetDoorControlTest = Test{ Name: "set door control", Request: &Request{ Name: SetDoorControlRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "door", Type: "uint8", Value: 3, }, Value{ Name: "mode", Type: "uint8", Value: 2, }, Value{ Name: "delay", Type: "uint8", Value: 10, }, }, Message: []uint8{ 0x17, 0x80, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x03, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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: &Response{ Name: SetDoorControlResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "door", Type: "uint8", Value: 3, }, Value{ Name: "mode", Type: "uint8", Value: 2, }, Value{ Name: "delay", Type: "uint8", Value: 10, }, }, Message: []uint8{ 0x17, 0x80, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x03, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 SetDoorPasscodes = Function{ Name: "set door passcodes", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "door", Type: "uint8", }, Arg{ Name: "passcode 1", Type: "uint32", }, Arg{ Name: "passcode 2", Type: "uint32", }, Arg{ Name: "passcode 3", Type: "uint32", }, Arg{ Name: "passcode 4", Type: "uint32", }, }, Request: &SetDoorPasscodesRequest, Response: &SetDoorPasscodesResponse, }
View Source
var SetDoorPasscodesRequest = Message{ Name: "set door passcodes request", MsgType: 0x8c, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "door", Type: "uint8", Offset: 8, }, Field{ Name: "passcode 1", Type: "uint32", Offset: 12, }, Field{ Name: "passcode 2", Type: "uint32", Offset: 16, }, Field{ Name: "passcode 3", Type: "uint32", Offset: 20, }, Field{ Name: "passcode 4", Type: "uint32", Offset: 24, }, }, }
View Source
var SetDoorPasscodesResponse = Message{ Name: "set door passcodes response", MsgType: 0x8c, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "ok", Type: "bool", Offset: 8, }, }, }
View Source
var SetDoorPasscodesTest = Test{ Name: "set door passcodes", Request: &Request{ Name: SetDoorPasscodesRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "door", Type: "uint8", Value: DOOR, }, Value{ Name: "passcode 1", Type: "uint32", Value: "12345", }, Value{ Name: "passcode 2", Type: "uint32", Value: "0", }, Value{ Name: "passcode 3", Type: "uint32", Value: "999999", }, Value{ Name: "passcode 4", Type: "uint32", Value: "54321", }, }, Message: []uint8{ 0x17, 0x8c, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x03, 0x00, 0x00, 0x00, 0x39, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x42, 0x0f, 0x00, 0x31, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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: &Response{ Name: SetDoorPasscodesResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "ok", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var SetEventIndex = Function{ Name: "set event index", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "event index", Type: "uint32", }, }, Request: &SetEventIndexRequest, Response: &SetEventIndexResponse, }
View Source
var SetEventIndexRequest = Message{ Name: "set event index request", MsgType: 0xb2, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "event index", Type: "uint32", Offset: 8, }, Field{ Name: "", Type: "magic", Offset: 12, }, }, }
View Source
var SetEventIndexResponse = Message{ Name: "set event index response", MsgType: 0xb2, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "updated", Type: "bool", Offset: 8, }, }, }
View Source
var SetEventIndexTest = Test{ Name: "set event index", Request: &Request{ Name: SetEventIndexRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "index", Type: "uint32", Value: EVENT_INDEX, }, }, Message: []uint8{ 0x17, 0xb2, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x25, 0x00, 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, }, }, Response: &Response{ Name: SetEventIndexResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "updated", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var SetIP = Function{ Name: "set IP", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "address", Type: "IPv4", }, Arg{ Name: "netmask", Type: "IPv4", }, Arg{ Name: "gateway", Type: "IPv4", }, }, Request: &SetIPRequest, }
View Source
var SetIPRequest = Message{ Name: "set IP request", MsgType: 0x96, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "address", Type: "IPv4", Offset: 8, }, Field{ Name: "netmask", Type: "IPv4", Offset: 12, }, Field{ Name: "gateway", Type: "IPv4", Offset: 16, }, Field{ Name: "", Type: "magic", Offset: 20, }, }, }
View Source
var SetIPTest = Test{ Name: "set IP", Request: &Request{ Name: SetIPRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "address", Type: "IPv4", Value: netip.MustParseAddr("192.168.1.100"), }, Value{ Name: "netmask", Type: "IPv4", Value: netip.MustParseAddr("255.255.255.0"), }, Value{ Name: "gateway", Type: "IPv4", Value: netip.MustParseAddr("192.168.1.1"), }, }, Message: []uint8{ 0x17, 0x96, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xc0, 0xa8, 0x01, 0x64, 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 SetInterlock = Function{ Name: "set interlock", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "interlock", Type: "uint8", }, }, Request: &SetInterlockRequest, Response: &SetInterlockResponse, }
View Source
var SetInterlockRequest = Message{ Name: "set interlock request", MsgType: 0xa2, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "interlock", Type: "uint8", Offset: 8, }, }, }
View Source
var SetInterlockResponse = Message{ Name: "set interlock response", MsgType: 0xa2, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "ok", Type: "bool", Offset: 8, }, }, }
View Source
var SetInterlockTest = Test{ Name: "set interlock", Request: &Request{ Name: SetInterlockRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "interlock", Type: "uint8", Value: "4", }, }, Message: []uint8{ 0x17, 0xa2, 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, }, }, Response: &Response{ Name: SetInterlockResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "ok", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var SetListener = Function{ Name: "set listener", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "address", Type: "IPv4", }, Arg{ Name: "port", Type: "uint16", }, }, Request: &SetListenerRequest, Response: &SetListenerResponse, }
View Source
var SetListenerRequest = Message{ Name: "set listener request", MsgType: 0x90, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "address", Type: "IPv4", Offset: 8, }, Field{ Name: "port", Type: "uint16", Offset: 12, }, }, }
View Source
var SetListenerResponse = Message{ Name: "set listener response", MsgType: 0x90, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "ok", Type: "bool", Offset: 8, }, }, }
View Source
var SetListenerTest = Test{ Name: "set listener", Request: &Request{ Name: SetListenerRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "address", Type: "IPv4", Value: netip.MustParseAddr("192.168.1.100"), }, Value{ Name: "port", Type: "uint16", Value: "60001", }, }, Message: []uint8{ 0x17, 0x90, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0xc0, 0xa8, 0x01, 0x64, 0x61, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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: &Response{ Name: SetListenerResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "ok", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var SetPCControl = Function{ Name: "set pc control", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "enable", Type: "bool", }, }, Request: &SetPCControlRequest, Response: &SetPCControlResponse, }
View Source
var SetPCControlRequest = Message{ Name: "set pc control request", MsgType: 0xa0, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "", Type: "magic", Offset: 8, }, Field{ Name: "enable", Type: "bool", Offset: 12, }, }, }
View Source
var SetPCControlResponse = Message{ Name: "set pc control response", MsgType: 0xa0, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "ok", Type: "bool", Offset: 8, }, }, }
View Source
var SetPCControlTest = Test{ Name: "set pc control", Request: &Request{ Name: SetPCControlRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "enabled", Type: "bool", Value: "true", }, }, Message: []uint8{ 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, }, }, Response: &Response{ Name: SetPCControlResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "ok", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var SetTime = Function{ Name: "set time", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "time", Type: "datetime", }, }, Request: &SetTimeRequest, Response: &SetTimeResponse, }
View Source
var SetTimeProfile = Function{ Name: "set time profile", Args: []Arg{ Arg{ Name: "device id", Type: "uint32", }, Arg{ Name: "profile id", Type: "uint8", }, Arg{ Name: "start date", Type: "date", }, Arg{ Name: "end date", Type: "date", }, Arg{ Name: "monday", Type: "bool", }, Arg{ Name: "tuesday", Type: "bool", }, Arg{ Name: "wednesday", Type: "bool", }, Arg{ Name: "thursday", Type: "bool", }, Arg{ Name: "friday", Type: "bool", }, Arg{ Name: "saturday", Type: "bool", }, Arg{ Name: "sunday", Type: "bool", }, Arg{ Name: "segment 1 start", Type: "HHmm", }, Arg{ Name: "segment 1 end", Type: "HHmm", }, Arg{ Name: "segment 2 start", Type: "HHmm", }, Arg{ Name: "segment 2 end", Type: "HHmm", }, Arg{ Name: "segment 3 start", Type: "HHmm", }, Arg{ Name: "segment 3 end", Type: "HHmm", }, Arg{ Name: "linked profile id", Type: "uint8", }, }, Request: &SetTimeProfileRequest, Response: &SetTimeProfileResponse, }
View Source
var SetTimeProfileRequest = Message{ Name: "set time profile request", MsgType: 0x88, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "profile id", Type: "uint8", Offset: 8, }, Field{ Name: "start date", Type: "date", Offset: 9, }, Field{ Name: "end date", Type: "date", Offset: 13, }, Field{ Name: "monday", Type: "bool", Offset: 17, }, Field{ Name: "tuesday", Type: "bool", Offset: 18, }, Field{ Name: "wednesday", Type: "bool", Offset: 19, }, Field{ Name: "thursday", Type: "bool", Offset: 20, }, Field{ Name: "friday", Type: "bool", Offset: 21, }, Field{ Name: "saturday", Type: "bool", Offset: 22, }, Field{ Name: "sunday", Type: "bool", Offset: 23, }, Field{ Name: "segment 1 start", Type: "HHmm", Offset: 24, }, Field{ Name: "segment 1 end", Type: "HHmm", Offset: 26, }, Field{ Name: "segment 2 start", Type: "HHmm", Offset: 28, }, Field{ Name: "segment 2 end", Type: "HHmm", Offset: 30, }, Field{ Name: "segment 3 start", Type: "HHmm", Offset: 32, }, Field{ Name: "segment 3 end", Type: "HHmm", Offset: 34, }, Field{ Name: "linked profile id", Type: "uint8", Offset: 36, }, }, }
View Source
var SetTimeProfileResponse = Message{ Name: "set time profile response", MsgType: 0x88, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "stored", Type: "bool", Offset: 8, }, }, }
View Source
var SetTimeProfileTest = Test{ Name: "set time profile", Request: &Request{ Name: SetTimeProfileRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "profile id", Type: "uint8", Value: TIME_PROFILE_ID, }, Value{ Name: "start date", Type: "date", Value: "2022-01-01", }, Value{ Name: "end date", Type: "date", Value: "2022-12-31", }, Value{ Name: "monday", Type: "bool", Value: "true", }, Value{ Name: "tuesday", Type: "bool", Value: "false", }, Value{ Name: "wednesday", Type: "bool", Value: "true", }, Value{ Name: "thursday", Type: "bool", Value: "true", }, Value{ Name: "friday", Type: "bool", Value: "false", }, Value{ Name: "saturday", Type: "bool", Value: "false", }, Value{ Name: "sunday", Type: "bool", Value: "true", }, Value{ Name: "segment 1 start", Type: "HHmm", Value: "08:30", }, Value{ Name: "segment 1 end", Type: "HHmm", Value: "11:45", }, Value{ Name: "segment 2 start", Type: "HHmm", Value: "13:15", }, Value{ Name: "segment 2 end", Type: "HHmm", Value: "16:30", }, Value{ Name: "segment 3 start", Type: "HHmm", Value: "19:30", }, Value{ Name: "segment 3 end", Type: "HHmm", Value: "20:55", }, Value{ Name: "linked profile id", Type: "uint8", Value: "30", }, }, Message: []uint8{ 0x17, 0x88, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x1d, 0x20, 0x22, 0x01, 0x01, 0x20, 0x22, 0x12, 0x31, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x08, 0x30, 0x11, 0x45, 0x13, 0x15, 0x16, 0x30, 0x19, 0x30, 0x20, 0x55, 0x1e, 0x00, 0x00, 0x00, 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: &Response{ Name: SetTimeProfileResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "stored", Type: "bool", Value: true, }, }, Message: []uint8{ 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, }, }, }
View Source
var SetTimeRequest = Message{ Name: "set time request", MsgType: 0x30, Fields: []Field{ Field{ Name: "device id", Type: "uint32", Offset: 4, }, Field{ Name: "datetime", Type: "datetime", Offset: 8, }, }, }
View Source
var SetTimeResponse = Message{ Name: "set time response", MsgType: 0x30, Fields: []Field{ Field{ Name: "controller", Type: "uint32", Offset: 4, }, Field{ Name: "datetime", Type: "datetime", Offset: 8, }, }, }
View Source
var SetTimeTest = Test{ Name: "set time", Request: &Request{ Name: SetTimeRequest.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "datetime", Type: "datetime", Value: "2022-08-23 09:49:03", }, }, Message: []uint8{ 0x17, 0x30, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x20, 0x22, 0x08, 0x23, 0x09, 0x49, 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, }, }, Response: &Response{ Name: SetTimeResponse.Name, Values: []Value{ Value{ Name: "controller", Type: "uint32", Value: CONTROLLER, }, Value{ Name: "datetime", Type: "datetime", Value: "2022-08-23 09:49:03", }, }, Message: []uint8{ 0x17, 0x30, 0x00, 0x00, 0x78, 0x37, 0x2a, 0x18, 0x20, 0x22, 0x08, 0x23, 0x09, 0x49, 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, }, }, }
View Source
var Tests = []Test{ GetControllerTest, SetIPTest, GetTimeTest, SetTimeTest, GetStatusTest, GetStatusNoEventTest, GetListenerTest, SetListenerTest, GetDoorControlTest, SetDoorControlTest, OpenDoorTest, GetCardsTest, GetCardTest, GetCardByIndexTest, PutCardTest, DeleteCardTest, DeleteAllCardsTest, GetEventTest, GetEventIndexTest, SetEventIndexTest, RecordSpecialEventsTest, GetTimeProfileTest, SetTimeProfileTest, DeleteAllTimeProfilesTest, AddTaskTest, RefreshTaskListTest, ClearTaskListTest, SetPCControlTest, SetInterlockTest, ActivateKeypadsTest, SetDoorPasscodesTest, }
Functions ¶
This section is empty.
Types ¶
Click to show internal directories.
Click to hide internal directories.