Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Trigger Distribution
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Trigger Distribution
Commits
3e06c9e7
Commit
3e06c9e7
authored
Jun 28, 2019
by
Dimitris Lampridis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sw: introduce more fw-related attributes
parent
47a61400
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
178 additions
and
4 deletions
+178
-4
PyWrtd.py
software/lib/Python/PyWrtd/PyWrtd.py
+5
-0
libwrtd-attributes.c
software/lib/libwrtd-attributes.c
+102
-0
libwrtd-private.h
software/lib/libwrtd-private.h
+15
-0
libwrtd.c
software/lib/libwrtd.c
+30
-0
libwrtd.h
software/lib/libwrtd.h
+15
-1
wrtd-config.py
software/tools/wrtd-config.py
+11
-3
No files found.
software/lib/Python/PyWrtd/PyWrtd.py
View file @
3e06c9e7
...
@@ -109,6 +109,11 @@ class PyWrtd():
...
@@ -109,6 +109,11 @@ class PyWrtd():
WRTD_ATTR_FW_MINOR_VERSION
=
__WRTD_ATTR_BASE
+
0x82
WRTD_ATTR_FW_MINOR_VERSION
=
__WRTD_ATTR_BASE
+
0x82
WRTD_ATTR_FW_MAJOR_VERSION_REQUIRED
=
__WRTD_ATTR_BASE
+
0x83
WRTD_ATTR_FW_MAJOR_VERSION_REQUIRED
=
__WRTD_ATTR_BASE
+
0x83
WRTD_ATTR_FW_MINOR_VERSION_REQUIRED
=
__WRTD_ATTR_BASE
+
0x84
WRTD_ATTR_FW_MINOR_VERSION_REQUIRED
=
__WRTD_ATTR_BASE
+
0x84
WRTD_ATTR_FW_MAX_RULES
=
__WRTD_ATTR_BASE
+
0x85
WRTD_ATTR_FW_MAX_ALARMS
=
__WRTD_ATTR_BASE
+
0x86
WRTD_ATTR_FW_CAPABILITIES
=
__WRTD_ATTR_BASE
+
0x88
WRTD_ATTR_FW_LOCAL_INPUTS
=
__WRTD_ATTR_BASE
+
0x8A
WRTD_ATTR_FW_LOCAL_OUTPUTS
=
__WRTD_ATTR_BASE
+
0x8B
WRTD_GLOBAL_REP_CAP_ID
=
'WGRCI'
WRTD_GLOBAL_REP_CAP_ID
=
'WGRCI'
...
...
software/lib/libwrtd-attributes.c
View file @
3e06c9e7
...
@@ -77,6 +77,108 @@ enum wrtd_status wrtd_attr_get_fw_minor_version_required(struct wrtd_dev *wrtd,
...
@@ -77,6 +77,108 @@ enum wrtd_status wrtd_attr_get_fw_minor_version_required(struct wrtd_dev *wrtd,
return
WRTD_SUCCESS
;
return
WRTD_SUCCESS
;
}
}
enum
wrtd_status
wrtd_attr_get_fw_max_rules
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
int32_t
*
value
)
{
enum
wrtd_status
status
;
unsigned
int
idx
;
status
=
wrtd_fill_roots
(
wrtd
,
__func__
);
WRTD_RETURN_IF_ERROR
(
status
);
status
=
wrtd_find_fw
(
wrtd
,
rep_cap_id
,
&
idx
,
__func__
);
WRTD_RETURN_IF_ERROR
(
status
);
*
value
=
wrtd
->
roots
[
idx
].
nbr_rules
;
return
WRTD_SUCCESS
;
}
enum
wrtd_status
wrtd_attr_get_fw_max_alarms
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
int32_t
*
value
)
{
enum
wrtd_status
status
;
unsigned
int
idx
;
status
=
wrtd_fill_roots
(
wrtd
,
__func__
);
WRTD_RETURN_IF_ERROR
(
status
);
status
=
wrtd_find_fw
(
wrtd
,
rep_cap_id
,
&
idx
,
__func__
);
WRTD_RETURN_IF_ERROR
(
status
);
*
value
=
wrtd
->
roots
[
idx
].
nbr_alarms
;
return
WRTD_SUCCESS
;
}
enum
wrtd_status
wrtd_attr_get_fw_capabilities
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
int32_t
*
value
)
{
enum
wrtd_status
status
;
unsigned
int
idx
;
status
=
wrtd_fill_roots
(
wrtd
,
__func__
);
WRTD_RETURN_IF_ERROR
(
status
);
status
=
wrtd_find_fw
(
wrtd
,
rep_cap_id
,
&
idx
,
__func__
);
WRTD_RETURN_IF_ERROR
(
status
);
*
value
=
wrtd
->
roots
[
idx
].
capabilities
;
return
WRTD_SUCCESS
;
}
enum
wrtd_status
wrtd_attr_get_fw_local_inputs
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
int32_t
*
value
)
{
enum
wrtd_status
status
;
unsigned
int
idx
;
int32_t
count
;
int
i
;
status
=
wrtd_fill_roots
(
wrtd
,
__func__
);
WRTD_RETURN_IF_ERROR
(
status
);
status
=
wrtd_find_fw
(
wrtd
,
rep_cap_id
,
&
idx
,
__func__
);
WRTD_RETURN_IF_ERROR
(
status
);
for
(
count
=
0
,
i
=
0
;
i
<
wrtd
->
roots
[
idx
].
nbr_devices
;
i
++
)
if
(
wrtd
->
roots
[
idx
].
devices_chs_dir
[
i
]
==
WRTD_CH_DIR_IN
)
count
+=
wrtd
->
roots
[
idx
].
devices_nbr_chs
[
i
];
*
value
=
count
;
return
WRTD_SUCCESS
;
}
enum
wrtd_status
wrtd_attr_get_fw_local_outputs
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
int32_t
*
value
)
{
enum
wrtd_status
status
;
unsigned
int
idx
;
int32_t
count
;
int
i
;
status
=
wrtd_fill_roots
(
wrtd
,
__func__
);
WRTD_RETURN_IF_ERROR
(
status
);
status
=
wrtd_find_fw
(
wrtd
,
rep_cap_id
,
&
idx
,
__func__
);
WRTD_RETURN_IF_ERROR
(
status
);
for
(
count
=
0
,
i
=
0
;
i
<
wrtd
->
roots
[
idx
].
nbr_devices
;
i
++
)
if
(
wrtd
->
roots
[
idx
].
devices_chs_dir
[
i
]
==
WRTD_CH_DIR_OUT
)
count
+=
wrtd
->
roots
[
idx
].
devices_nbr_chs
[
i
];
*
value
=
count
;
return
WRTD_SUCCESS
;
}
enum
wrtd_status
wrtd_attr_get_alarm_count
(
struct
wrtd_dev
*
wrtd
,
enum
wrtd_status
wrtd_attr_get_alarm_count
(
struct
wrtd_dev
*
wrtd
,
int32_t
*
value
)
int32_t
*
value
)
{
{
...
...
software/lib/libwrtd-private.h
View file @
3e06c9e7
...
@@ -188,6 +188,21 @@ enum wrtd_status wrtd_attr_get_fw_major_version_required(struct wrtd_dev *wrtd,
...
@@ -188,6 +188,21 @@ enum wrtd_status wrtd_attr_get_fw_major_version_required(struct wrtd_dev *wrtd,
enum
wrtd_status
wrtd_attr_get_fw_minor_version_required
(
struct
wrtd_dev
*
wrtd
,
enum
wrtd_status
wrtd_attr_get_fw_minor_version_required
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
const
char
*
rep_cap_id
,
int32_t
*
value
);
int32_t
*
value
);
enum
wrtd_status
wrtd_attr_get_fw_max_rules
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
int32_t
*
value
);
enum
wrtd_status
wrtd_attr_get_fw_max_alarms
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
int32_t
*
value
);
enum
wrtd_status
wrtd_attr_get_fw_capabilities
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
int32_t
*
value
);
enum
wrtd_status
wrtd_attr_get_fw_local_inputs
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
int32_t
*
value
);
enum
wrtd_status
wrtd_attr_get_fw_local_outputs
(
struct
wrtd_dev
*
wrtd
,
const
char
*
rep_cap_id
,
int32_t
*
value
);
enum
wrtd_status
wrtd_attr_get_alarm_count
(
struct
wrtd_dev
*
wrtd
,
enum
wrtd_status
wrtd_attr_get_alarm_count
(
struct
wrtd_dev
*
wrtd
,
int32_t
*
value
);
int32_t
*
value
);
enum
wrtd_status
wrtd_attr_set_alarm_period
(
struct
wrtd_dev
*
wrtd
,
enum
wrtd_status
wrtd_attr_set_alarm_period
(
struct
wrtd_dev
*
wrtd
,
...
...
software/lib/libwrtd.c
View file @
3e06c9e7
...
@@ -513,6 +513,11 @@ wrtd_status wrtd_set_attr_int32(wrtd_dev *wrtd,
...
@@ -513,6 +513,11 @@ wrtd_status wrtd_set_attr_int32(wrtd_dev *wrtd,
case
WRTD_ATTR_FW_MINOR_VERSION
:
case
WRTD_ATTR_FW_MINOR_VERSION
:
case
WRTD_ATTR_FW_MAJOR_VERSION_REQUIRED
:
case
WRTD_ATTR_FW_MAJOR_VERSION_REQUIRED
:
case
WRTD_ATTR_FW_MINOR_VERSION_REQUIRED
:
case
WRTD_ATTR_FW_MINOR_VERSION_REQUIRED
:
case
WRTD_ATTR_FW_MAX_RULES
:
case
WRTD_ATTR_FW_MAX_ALARMS
:
case
WRTD_ATTR_FW_CAPABILITIES
:
case
WRTD_ATTR_FW_LOCAL_INPUTS
:
case
WRTD_ATTR_FW_LOCAL_OUTPUTS
:
case
WRTD_ATTR_ALARM_COUNT
:
case
WRTD_ATTR_ALARM_COUNT
:
case
WRTD_ATTR_RULE_COUNT
:
case
WRTD_ATTR_RULE_COUNT
:
case
WRTD_ATTR_STAT_RULE_RX_EVENTS
:
case
WRTD_ATTR_STAT_RULE_RX_EVENTS
:
...
@@ -590,6 +595,31 @@ wrtd_status wrtd_get_attr_int32(wrtd_dev *wrtd,
...
@@ -590,6 +595,31 @@ wrtd_status wrtd_get_attr_int32(wrtd_dev *wrtd,
(
wrtd
,
rep_cap_id
,
value
);
(
wrtd
,
rep_cap_id
,
value
);
WRTD_RETURN_IF_ERROR
(
status
);
WRTD_RETURN_IF_ERROR
(
status
);
return
WRTD_SUCCESS
;
return
WRTD_SUCCESS
;
case
WRTD_ATTR_FW_MAX_RULES
:
status
=
wrtd_attr_get_fw_max_rules
(
wrtd
,
rep_cap_id
,
value
);
WRTD_RETURN_IF_ERROR
(
status
);
return
WRTD_SUCCESS
;
case
WRTD_ATTR_FW_MAX_ALARMS
:
status
=
wrtd_attr_get_fw_max_alarms
(
wrtd
,
rep_cap_id
,
value
);
WRTD_RETURN_IF_ERROR
(
status
);
return
WRTD_SUCCESS
;
case
WRTD_ATTR_FW_CAPABILITIES
:
status
=
wrtd_attr_get_fw_capabilities
(
wrtd
,
rep_cap_id
,
value
);
WRTD_RETURN_IF_ERROR
(
status
);
return
WRTD_SUCCESS
;
case
WRTD_ATTR_FW_LOCAL_INPUTS
:
status
=
wrtd_attr_get_fw_local_inputs
(
wrtd
,
rep_cap_id
,
value
);
WRTD_RETURN_IF_ERROR
(
status
);
return
WRTD_SUCCESS
;
case
WRTD_ATTR_FW_LOCAL_OUTPUTS
:
status
=
wrtd_attr_get_fw_local_outputs
(
wrtd
,
rep_cap_id
,
value
);
WRTD_RETURN_IF_ERROR
(
status
);
return
WRTD_SUCCESS
;
case
WRTD_ATTR_ALARM_COUNT
:
case
WRTD_ATTR_ALARM_COUNT
:
status
=
wrtd_attr_global
status
=
wrtd_attr_global
(
wrtd
,
rep_cap_id
);
(
wrtd
,
rep_cap_id
);
...
...
software/lib/libwrtd.h
View file @
3e06c9e7
...
@@ -213,7 +213,6 @@ typedef enum wrtd_attr {
...
@@ -213,7 +213,6 @@ typedef enum wrtd_attr {
reception by WRTD. */
reception by WRTD. */
WRTD_ATTR_STAT_RULE_RX_LATENCY_AVG
=
__WRTD_ATTR_BASE
+
0x3B
,
WRTD_ATTR_STAT_RULE_RX_LATENCY_AVG
=
__WRTD_ATTR_BASE
+
0x3B
,
/** `RO` `int32` `global` Number of separate WRTD firmware applications
/** `RO` `int32` `global` Number of separate WRTD firmware applications
running on the device. */
running on the device. */
WRTD_ATTR_FW_COUNT
=
__WRTD_ATTR_BASE
+
0x80
,
WRTD_ATTR_FW_COUNT
=
__WRTD_ATTR_BASE
+
0x80
,
...
@@ -227,6 +226,21 @@ typedef enum wrtd_attr {
...
@@ -227,6 +226,21 @@ typedef enum wrtd_attr {
/** `RO` `int32` Minor part of WRTD version supported by the firmware.
/** `RO` `int32` Minor part of WRTD version supported by the firmware.
It must be less than or equal to the minor version of the WRTD library in use. */
It must be less than or equal to the minor version of the WRTD library in use. */
WRTD_ATTR_FW_MINOR_VERSION_REQUIRED
=
__WRTD_ATTR_BASE
+
0x84
,
WRTD_ATTR_FW_MINOR_VERSION_REQUIRED
=
__WRTD_ATTR_BASE
+
0x84
,
/** `RO` `int32` Max number of rules allowed by this firmware. */
WRTD_ATTR_FW_MAX_RULES
=
__WRTD_ATTR_BASE
+
0x85
,
/** `RO` `int32` Max number of alarms allowed by this firmware. */
WRTD_ATTR_FW_MAX_ALARMS
=
__WRTD_ATTR_BASE
+
0x86
,
/** `RO` `int32` Event TX/RX capabilities of this firmware. This is
a bit-field with the following meaning per bit:
- **bit 0:** if set, the firmware can receive network events.
- **bit 1:** if set, the firmware can create network events.
- **bit 2:** if set, the firmware can receive local events.
- **bit 3:** if set, the firmware can create local events. */
WRTD_ATTR_FW_CAPABILITIES
=
__WRTD_ATTR_BASE
+
0x88
,
/** `RO` `int32` Number of available local input channels. */
WRTD_ATTR_FW_LOCAL_INPUTS
=
__WRTD_ATTR_BASE
+
0x8A
,
/** `RO` `int32` Number of available local output channels. */
WRTD_ATTR_FW_LOCAL_OUTPUTS
=
__WRTD_ATTR_BASE
+
0x8B
,
/** Always last entry in this enum */
/** Always last entry in this enum */
__WRTD_ATTR_MAX_NUMBER
,
__WRTD_ATTR_MAX_NUMBER
,
...
...
software/tools/wrtd-config.py
View file @
3e06c9e7
...
@@ -52,13 +52,21 @@ def cmd_sys_info(wrtd, args):
...
@@ -52,13 +52,21 @@ def cmd_sys_info(wrtd, args):
print
(
'# {0}'
.
format
(
fw_name
))
print
(
'# {0}'
.
format
(
fw_name
))
if
args
.
verbose
:
if
args
.
verbose
:
print
(
" + Version Info"
)
print
(
" + Version Info"
)
print
(
" - Name.........: {0}"
.
format
(
fw_name
))
print
(
" - Name.........
.....
: {0}"
.
format
(
fw_name
))
print
(
" - FW version...: {0}.{1}"
.
format
(
print
(
" - FW version...
.....
: {0}.{1}"
.
format
(
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_MAJOR_VERSION
),
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_MAJOR_VERSION
),
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_MINOR_VERSION
)))
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_MINOR_VERSION
)))
print
(
" - WRTD version.: {0}.{1}"
.
format
(
print
(
" - WRTD version.
.....
: {0}.{1}"
.
format
(
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_MAJOR_VERSION_REQUIRED
),
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_MAJOR_VERSION_REQUIRED
),
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_MINOR_VERSION_REQUIRED
)))
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_MINOR_VERSION_REQUIRED
)))
print
(
" + Capabilities"
)
print
(
" - Local RX Channels.: {0}"
.
format
(
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_LOCAL_INPUTS
)))
print
(
" - Local TX Channels.: {0}"
.
format
(
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_LOCAL_OUTPUTS
)))
caps
=
wrtd
.
get_attr_int32
(
fw_name
,
wrtd
.
WRTD_ATTR_FW_CAPABILITIES
)
print
(
" - Network RX........: {0}"
.
format
(
caps
&
0x1
!=
0
))
print
(
" - Network TX........: {0}"
.
format
(
caps
&
0x2
!=
0
))
print
()
print
()
cmd_list_alarms
(
wrtd
,
args
)
cmd_list_alarms
(
wrtd
,
args
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment