Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
osdp.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 Siddharth Chandrasekaran <siddharth@embedjournal.com>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef _OSDP_H_
8#define _OSDP_H_
9
10#include <zephyr/kernel.h>
11#include <stdint.h>
12
13#include <zephyr/sys/slist.h>
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#define OSDP_CMD_TEXT_MAX_LEN 32
20#define OSDP_CMD_KEYSET_KEY_MAX_LEN 32
21#define OSDP_EVENT_MAX_DATALEN 64
22
41};
42
53};
54
80};
81
95};
96
112};
113
137};
138
150};
151
164};
165
178
191struct osdp_cmd {
194 union {
201 };
202};
203
214
239};
240
253};
254
263
274 union {
277 };
278};
279
295typedef int (*pd_command_callback_t)(void *arg, struct osdp_cmd *cmd);
296
310typedef int (*cp_event_callback_t)(void *arg, int pd, struct osdp_event *ev);
311
312#ifdef CONFIG_OSDP_MODE_PD
313
321void osdp_pd_set_command_callback(pd_command_callback_t cb, void *arg);
322
332int osdp_pd_notify_event(const struct osdp_event *event);
333
334#else /* CONFIG_OSDP_MODE_PD */
335
348int osdp_cp_send_command(int pd, struct osdp_cmd *cmd);
349
350
359
360#endif /* CONFIG_OSDP_MODE_PD */
361
362#ifdef CONFIG_OSDP_SC_ENABLED
363
364uint32_t osdp_get_sc_status_mask(void);
365
366#endif
367
368#ifdef __cplusplus
369}
370#endif
371
372#endif /* _OSDP_H_ */
static void cmd(uint32_t command)
Execute a display list command by co-processor engine.
Definition: ft8xx_reference_api.h:153
struct _snode sys_snode_t
Single-linked list node structure.
Definition: slist.h:39
Public kernel APIs.
#define OSDP_CMD_KEYSET_KEY_MAX_LEN
Definition: osdp.h:20
int(* pd_command_callback_t)(void *arg, struct osdp_cmd *cmd)
Callback for PD command notifications.
Definition: osdp.h:295
void osdp_cp_set_event_callback(cp_event_callback_t cb, void *arg)
Set callback method for CP event notification.
osdp_event_type
OSDP PD Events.
Definition: osdp.h:258
@ OSDP_EVENT_CARDREAD
Definition: osdp.h:259
@ OSDP_EVENT_SENTINEL
Definition: osdp.h:261
@ OSDP_EVENT_KEYPRESS
Definition: osdp.h:260
osdp_event_cardread_format_e
Various card formats that a PD can support.
Definition: osdp.h:208
@ OSDP_CARD_FMT_ASCII
Definition: osdp.h:211
@ OSDP_CARD_FMT_SENTINEL
Definition: osdp.h:212
@ OSDP_CARD_FMT_RAW_UNSPECIFIED
Definition: osdp.h:209
@ OSDP_CARD_FMT_RAW_WIEGAND
Definition: osdp.h:210
osdp_led_color_e
LED Colors as specified in OSDP for the on_color/off_color parameters.
Definition: osdp.h:46
@ OSDP_LED_COLOR_SENTINEL
Definition: osdp.h:52
@ OSDP_LED_COLOR_RED
Definition: osdp.h:48
@ OSDP_LED_COLOR_NONE
Definition: osdp.h:47
@ OSDP_LED_COLOR_GREEN
Definition: osdp.h:49
@ OSDP_LED_COLOR_BLUE
Definition: osdp.h:51
@ OSDP_LED_COLOR_AMBER
Definition: osdp.h:50
int(* cp_event_callback_t)(void *arg, int pd, struct osdp_event *ev)
Callback for CP event notifications.
Definition: osdp.h:310
osdp_cmd_e
OSDP application exposed commands.
Definition: osdp.h:169
@ OSDP_CMD_COMSET
Definition: osdp.h:175
@ OSDP_CMD_KEYSET
Definition: osdp.h:174
@ OSDP_CMD_LED
Definition: osdp.h:171
@ OSDP_CMD_SENTINEL
Definition: osdp.h:176
@ OSDP_CMD_BUZZER
Definition: osdp.h:172
@ OSDP_CMD_OUTPUT
Definition: osdp.h:170
@ OSDP_CMD_TEXT
Definition: osdp.h:173
#define OSDP_CMD_TEXT_MAX_LEN
Definition: osdp.h:19
#define OSDP_EVENT_MAX_DATALEN
Definition: osdp.h:21
int osdp_cp_send_command(int pd, struct osdp_cmd *cmd)
Generic command enqueue API.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Sent from CP to control the behaviour of a buzzer in the PD.
Definition: osdp.h:106
uint8_t reader
Definition: osdp.h:107
uint8_t rep_count
Definition: osdp.h:111
uint8_t control_code
Definition: osdp.h:108
uint8_t on_count
Definition: osdp.h:109
uint8_t off_count
Definition: osdp.h:110
Sent in response to a COMSET command.
Definition: osdp.h:147
uint32_t baud_rate
Definition: osdp.h:149
uint8_t address
Definition: osdp.h:148
This command transfers an encryption key from the CP to a PD.
Definition: osdp.h:160
uint8_t length
Definition: osdp.h:162
uint8_t type
Definition: osdp.h:161
uint8_t data[32]
Definition: osdp.h:163
LED params sub-structure.
Definition: osdp.h:73
uint16_t timer_count
Definition: osdp.h:79
uint8_t off_count
Definition: osdp.h:76
uint8_t on_color
Definition: osdp.h:77
uint8_t off_color
Definition: osdp.h:78
uint8_t on_count
Definition: osdp.h:75
uint8_t control_code
Definition: osdp.h:74
Sent from CP to PD to control the behaviour of it's on-board LEDs.
Definition: osdp.h:90
struct osdp_cmd_led_params permanent
Definition: osdp.h:94
struct osdp_cmd_led_params temporary
Definition: osdp.h:93
uint8_t led_number
Definition: osdp.h:92
uint8_t reader
Definition: osdp.h:91
Command sent from CP to Control digital output of PD.
Definition: osdp.h:37
uint8_t control_code
Definition: osdp.h:39
uint16_t timer_count
Definition: osdp.h:40
uint8_t output_no
Definition: osdp.h:38
Command to manipulate any display units that the PD supports.
Definition: osdp.h:129
uint8_t offset_row
Definition: osdp.h:133
uint8_t data[32]
Definition: osdp.h:136
uint8_t reader
Definition: osdp.h:130
uint8_t control_code
Definition: osdp.h:131
uint8_t length
Definition: osdp.h:135
uint8_t offset_col
Definition: osdp.h:134
uint8_t temp_time
Definition: osdp.h:132
OSDP Command Structure.
Definition: osdp.h:191
enum osdp_cmd_e id
Definition: osdp.h:193
struct osdp_cmd_comset comset
Definition: osdp.h:199
struct osdp_cmd_buzzer buzzer
Definition: osdp.h:196
struct osdp_cmd_text text
Definition: osdp.h:197
sys_snode_t node
Definition: osdp.h:192
struct osdp_cmd_output output
Definition: osdp.h:198
struct osdp_cmd_led led
Definition: osdp.h:195
struct osdp_cmd_keyset keyset
Definition: osdp.h:200
OSDP event cardread.
Definition: osdp.h:233
int direction
Definition: osdp.h:236
int length
Definition: osdp.h:237
enum osdp_event_cardread_format_e format
Definition: osdp.h:235
int reader_no
Definition: osdp.h:234
uint8_t data[64]
Definition: osdp.h:238
OSDP Event Keypad.
Definition: osdp.h:249
int length
Definition: osdp.h:251
uint8_t data[64]
Definition: osdp.h:252
int reader_no
Definition: osdp.h:250
OSDP Event structure.
Definition: osdp.h:271
sys_snode_t node
Definition: osdp.h:272
struct osdp_event_keypress keypress
Definition: osdp.h:275
struct osdp_event_cardread cardread
Definition: osdp.h:276
enum osdp_event_type type
Definition: osdp.h:273