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
40b7a10a
Commit
40b7a10a
authored
Feb 14, 2019
by
Milosz Malczak
Committed by
Dimitris Lampridis
May 02, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sw: Implemented functions for error handling from the official API
parent
bac1ef78
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
157 additions
and
0 deletions
+157
-0
libwrtd-base.c
software/lib/libwrtd-base.c
+157
-0
No files found.
software/lib/libwrtd-base.c
View file @
40b7a10a
...
...
@@ -38,6 +38,163 @@ const char *wrtd_get_error_msg(struct wrtd_dev *dev)
return
dev
->
error_msg
;
}
extern
enum
wrtd_status
wrtd_get_error
(
struct
wrtd_dev
*
dev
,
enum
wrtd_status
*
error_code
,
uint32_t
buffer_size
,
char
*
error_description
)
{
enum
wrtd_status
status
;
if
(
dev
==
NULL
){
return
wrtd_return_error
(
dev
,
WRTD_ERROR_NOT_INITIALIZED
,
"uninitialized wrtd device"
);
}
char
error_message
[
256
];
*
error_code
=
dev
->
err
;
status
=
wrtd_error_message
(
dev
,
*
error_code
,
error_message
);
WRTD_RETURN_IF_ERROR
(
status
);
strncpy
(
error_description
,
error_message
,
buffer_size
);
strncat
(
error_description
,
dev
->
error_msg
,
buffer_size
-
1
-
strlen
(
error_description
));
dev
->
err
=
0
;
memset
(
dev
->
error_msg
,
0
,
sizeof
(
dev
->
error_msg
));
return
WRTD_SUCCESS
;
}
extern
enum
wrtd_status
wrtd_error_message
(
struct
wrtd_dev
*
dev
,
enum
wrtd_status
err_code
,
char
*
err_message
)
{
if
(
err_message
==
NULL
){
return
wrtd_return_error
(
dev
,
WRTD_ERROR_NOT_INITIALIZED
,
"error message not initialized"
);
}
switch
(
err_code
){
case
WRTD_SUCCESS
:
strcpy
(
err_message
,
"WRTD_SUCCESS "
);
break
;
case
WRTD_ERROR_CANNOT_RECOVER
:
strcpy
(
err_message
,
"WRTD_ERROR_CANNOT_RECOVER "
);
break
;
case
WRTD_ERROR_INVALID_ATTRIBUTE
:
strcpy
(
err_message
,
"WRTD_ERROR_INVALID_ATTRIBUTE "
);
break
;
case
WRTD_ERROR_ATTR_NOT_WRITEABLE
:
strcpy
(
err_message
,
"WRTD_ERROR_ATTR_NOT_WRITEABLE "
);
break
;
case
WRTD_ERROR_ATTR_NOT_READABLE
:
strcpy
(
err_message
,
"WRTD_ERROR_ATTR_NOT_READABLE "
);
break
;
case
WRTD_ERROR_INVALID_VALUE
:
strcpy
(
err_message
,
"WRTD_ERROR_INVALID_VALUE "
);
break
;
case
WRTD_ERROR_NOT_INITIALIZED
:
strcpy
(
err_message
,
"WRTD_ERROR_NOT_INITIALIZED "
);
break
;
case
WRTD_ERROR_MISSING_OPTION_NAME
:
strcpy
(
err_message
,
"WRTD_ERROR_MISSING_OPTION_NAME "
);
break
;
case
WRTD_ERROR_MISSING_OPTION_VALUE
:
strcpy
(
err_message
,
"WRTD_ERROR_MISSING_OPTION_VALUE "
);
break
;
case
WRTD_ERROR_BAD_OPTION_NAME
:
strcpy
(
err_message
,
"WRTD_ERROR_BAD_OPTION_NAME "
);
break
;
case
WRTD_ERROR_BAD_OPTION_VALUE
:
strcpy
(
err_message
,
"WRTD_ERROR_BAD_OPTION_VALUE "
);
break
;
case
WRTD_ERROR_OUT_OF_MEMORY
:
strcpy
(
err_message
,
"WRTD_ERROR_OUT_OF_MEMORY "
);
break
;
case
WRTD_ERROR_OPERATION_PENDING
:
strcpy
(
err_message
,
"WRTD_ERROR_OPERATION_PENDING "
);
break
;
case
WRTD_ERROR_NULL_POINTER
:
strcpy
(
err_message
,
"WRTD_ERROR_NULL_POINTER "
);
break
;
case
WRTD_ERROR_UNEXPECTED_RESPONSE
:
strcpy
(
err_message
,
"WRTD_ERROR_UNEXPECTED_RESPONSE "
);
break
;
case
WRTD_ERROR_RESET_FAILED
:
strcpy
(
err_message
,
"WRTD_ERROR_RESET_FAILED "
);
break
;
case
WRTD_ERROR_RESOURCE_UNKNOWN
:
strcpy
(
err_message
,
"WRTD_ERROR_RESOURCE_UNKNOWN "
);
break
;
case
WRTD_ERROR_RESOURCE_ACTIVE
:
strcpy
(
err_message
,
"WRTD_ERROR_RESOURCE_ACTIVE "
);
break
;
case
WRTD_ERROR_ATTR_INVALID_REP_CAP
:
strcpy
(
err_message
,
"WRTD_ERROR_ATTR_INVALID_REP_CAP "
);
break
;
case
WRTD_ERROR_NOT_IMPLEMENTED
:
strcpy
(
err_message
,
"WRTD_ERROR_NOT_IMPLEMENTED "
);
break
;
case
WRTD_ERROR_BAD_REP_CAP_ID
:
strcpy
(
err_message
,
"WRTD_ERROR_BAD_REP_CAP_ID "
);
break
;
case
WRTD_ERROR_TIMEOUT
:
strcpy
(
err_message
,
"WRTD_ERROR_TIMEOUT "
);
break
;
case
WRTD_ERROR_BUFFER_TOO_SHORT
:
strcpy
(
err_message
,
"WRTD_ERROR_BUFFER_TOO_SHORT "
);
break
;
case
WRTD_ERROR_UNKNOWN_NAME_IN_SELECTOR
:
strcpy
(
err_message
,
"WRTD_ERROR_UNKNOWN_NAME_IN_SELECTOR "
);
break
;
case
WRTD_ERROR_ALARM_TIME_INVALID
:
strcpy
(
err_message
,
"WRTD_ERROR_ALARM_TIME_INVALID "
);
break
;
case
WRTD_ERROR_ALARM_EXISTS
:
strcpy
(
err_message
,
"WRTD_ERROR_ALARM_EXISTS "
);
break
;
case
WRTD_ERROR_ALARM_DOES_NOT_EXIST
:
strcpy
(
err_message
,
"WRTD_ERROR_ALARM_DOES_NOT_EXIST "
);
break
;
case
WRTD_ERROR_ALARM_OUT_OF_RESOURCES
:
strcpy
(
err_message
,
"WRTD_ERROR_ALARM_OUT_OF_RESOURCES "
);
break
;
case
WRTD_ERROR_RULE_EXISTS
:
strcpy
(
err_message
,
"WRTD_ERROR_RULE_EXISTS "
);
break
;
case
WRTD_ERROR_RULE_DOES_NOT_EXIST
:
strcpy
(
err_message
,
"WRTD_ERROR_RULE_DOES_NOT_EXIST "
);
break
;
case
WRTD_ERROR_RULE_OUT_OF_RESOURCES
:
strcpy
(
err_message
,
"WRTD_ERROR_RULE_OUT_OF_RESOURCES "
);
break
;
case
WRTD_ERROR_RULE_INVALID
:
strcpy
(
err_message
,
"WRTD_ERROR_RULE_INVALID "
);
break
;
case
WRTD_ERROR_RULE_ENABLED
:
strcpy
(
err_message
,
"WRTD_ERROR_RULE_ENABLED "
);
break
;
case
WRTD_ERROR_CANT_REMOVE_RESERVED_REP_CAP
:
strcpy
(
err_message
,
"WRTD_ERROR_CANT_REMOVE_RESERVED_REP_CAP "
);
break
;
default:
strcpy
(
err_message
,
"WRTD_UNKNOWN_ERROR_CODE "
);
break
;
}
return
WRTD_SUCCESS
;
}
enum
wrtd_status
wrtd_init
(
const
char
*
resource_name
,
bool
reset
,
const
char
*
options_str
,
...
...
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