blob: 455de0b3811650119f0e37c3c99b1f9a7a0c69d6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
/*
* @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "tskm_watch.h"
#include <agl_thread.h>
#include "tskm_debug.h"
#include "tskm_port_pf.h"
#include "tskm_comm.h"
#define WATCH_CYCLE 5
#define TIMER_THREAD_NAME "SS_TskmTimer"
/*******************************************************************
* Periodic Timer-Thread MAIN Function
*******************************************************************/
void *
watchMain(void *arg) {
int connFd = -1;
connFd = tskm_cliSockConnect(TSKM_SOCKET_NAME);
if (connFd < 0) { // LCOV_EXCL_BR_LINE 5: system function(uinx) "socket" fail process
// LCOV_EXCL_START 5: system function(uinx) "socket" fail process
AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
TSKM_ASSERT(0);
goto ERROR;
// LCOV_EXCL_STOP 5
}
while (1) {
int ret;
TSKM_EVENT_INFO_t ev;
sleep(WATCH_CYCLE);
ev.event = TSKM_EV_LCL_REP_POLLING;
ev.errCode = TSKM_E_OK;
ret = tskm_sockSend(connFd, &ev);
if (ret <= 0) { // LCOV_EXCL_BR_LINE 5: system function(uinx) "send" fail process
// LCOV_EXCL_START 5: system function(uinx) "send" fail process
AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
TSKM_ASSERT(0);
goto ERROR;
// LCOV_EXCL_STOP 5
}
}
// LCOV_EXCL_START 6: system function(uinx) call fail process
ERROR:
AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
if (connFd != -1) {
tskm_sockDestory(connFd);
}
return 0;
// LCOV_EXCL_STOP
}
/*******************************************************************
* Periodic Timer thread start
*******************************************************************/
int tskm_watch_startTimer() {
int ret;
pthread_t thId = { 0 };
ret = tskm_pf_createThread(watchMain, NULL, PR_SS_TSKMTIMER,
TIMER_THREAD_NAME, &thId);
if (ret != 0) { // LCOV_EXCL_BR_LINE 5: system function(uinx) "pthread_*" fail process
// LCOV_EXCL_START 5: system function(uinx) "pthread_*" fail process
AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
TSKM_ASSERT(0);
goto ERROR;
// LCOV_EXCL_STOP 5
} else {
TSKM_PRINTF(TSKM_LOG_STATE, "watch thread created.");
}
return 0;
// LCOV_EXCL_LINE 6: system function(uinx) "pthread_*" fail process
ERROR:
AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
return -1;
// LCOV_EXCL_STOP
}
|