source: azure_iot_hub/trunk/ntshell/src/net_misc.c@ 388

Last change on this file since 388 was 388, checked in by coas-nagasima, 5 years ago

Azure IoT Hub Device C SDK を使ったサンプルの追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-csrc
File size: 4.8 KB
Line 
1/*
2 * TOPPERS ECHONET Lite Communication Middleware
3 *
4 * Copyright (C) 2018 Cores Co., Ltd. Japan
5 *
6 * 上記著作権者
7は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
8 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
9 * 変・再é…
10å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
13 * スコード中に含まれていること.
14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
15 * 用できる形で再é…
16å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
17å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
18 * 者
19マニュアルなど)に,上記の著作権表示,この利用条件および下記
20 * の無保証規定を掲載すること.
21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
22 * 用できない形で再é…
23å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
24 * と.
25 * (a) 再é…
26å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
27マニュアルなど)に,上記の著
28 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
29 * (b) 再é…
30å¸ƒã®å½¢æ…
31‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
32 * 報告すること.
33 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
34 * 害からも,上記著作権者
35およびTOPPERSプロジェクトをå…
36è²¬ã™ã‚‹ã“と.
37 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
38 * 由に基づく請求からも,上記著作権者
39およびTOPPERSプロジェクトを
40 * å…
41è²¬ã™ã‚‹ã“と.
42 *
43 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
44お
45 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
46 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
47 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
48 * の責任を負わない.
49 *
50 * @(#) $Id: net_misc.c 388 2019-05-22 11:25:18Z coas-nagasima $
51 */
52
53#include <kernel.h>
54#include <sil.h>
55#include <t_syslog.h>
56#include <t_stdlib.h>
57
58#include <tinet_defs.h>
59#include <tinet_config.h>
60
61#include <net/if.h>
62#include <net/ethernet.h>
63
64#include <net/net.h>
65#include <net/net_endian.h>
66#include <net/net_var.h>
67#include <net/net_timer.h>
68
69#include <netinet/in.h>
70#include <netinet/in_var.h>
71
72#include "netapp/dhcp4_cli.h"
73#include "netapp/dhcp4_cli_var.h"
74#include "ntp_cli.h"
75#include "kernel_cfg.h"
76#include "tinet_cfg.h"
77#include <stdio.h>
78
79T_DHCP4_CLI_CONTEXT *dhcp4_cli_initialize(ID tskid, ID cepid);
80int dhcp4_cli_get_timer(T_DHCP4_CLI_CONTEXT *ct);
81void dhcp4_cli_progress(T_DHCP4_CLI_CONTEXT *ct, int elapse);
82void dhcp4_cli_wakeup(T_DHCP4_CLI_CONTEXT *ct);
83void dhcp4_cli_timeout(T_DHCP4_CLI_CONTEXT *ct);
84
85int net_misc_get_timer(T_DHCP4_CLI_CONTEXT *ct, T_NTP_CLI_CONTEXT *nc)
86{
87 int timer = dhcp4_cli_get_timer(ct);
88
89 if ((nc->timer != TMO_FEVR) && ((timer == TMO_FEVR) || (timer > nc->timer))) {
90 timer = nc->timer;
91 }
92
93 return timer;
94}
95
96extern T_NTP_CLI_CONTEXT ntp_cli;
97
98/*
99 * DHCP, NTP クライアント タスク
100 */
101
102void
103net_misc_task (intptr_t exinf)
104{
105 T_DHCP4_CLI_CONTEXT *ct;
106 T_NTP_CLI_CONTEXT *nc = &ntp_cli;
107 ER error = E_OK, ret;
108 SYSTIM prev, time;
109 int timer;
110
111 get_tid(&nc->tskid);
112 syslog(LOG_NOTICE, "[NET MISC:%d,%d] started.", nc->tskid, (ID)exinf);
113
114 /* 初期化 */
115 ct = dhcp4_cli_initialize(nc->tskid, UDP4_DHCP_CLI_CEPID);
116 ntp_cli_initialize(nc, NTP_CLI_CEPID);
117
118 ret = get_tim(&time);
119 if (ret != E_OK) {
120 syslog(LOG_NOTICE, "[NET MISC,%d] get_tim error: %7lu,%s",
121 nc->cepid, time / SYSTIM_HZ, itron_strerror(ret));
122 return;
123 }
124
125 while (true) {
126 prev = time;
127
128 /* タイマー取得 */
129 timer = net_misc_get_timer(ct, nc);
130
131 /* 待
132ち */
133 error = tslp_tsk(timer);
134 if ((error != E_OK) && (error != E_TMOUT)) {
135 syslog(LOG_NOTICE, "[NET MISC,%d] tslp_tsk error: %s %d",
136 nc->cepid, itron_strerror(error), timer);
137 break;
138 }
139
140 ret = get_tim(&time);
141 if (ret != E_OK) {
142 syslog(LOG_NOTICE, "[NET MISC,%d] get_tim error: %s",
143 nc->cepid, itron_strerror(ret));
144 break;
145 }
146
147 /* 時間経過 */
148 int elapse = time - prev;
149 dhcp4_cli_progress(ct, elapse);
150 ntp_cli_progress(nc, elapse);
151
152 /* 起こされた場合 */
153 if (error == E_OK) {
154 dhcp4_cli_wakeup(ct);
155 ntp_cli_wakeup(nc);
156 }
157
158 /* タイムアウト処理 */
159 dhcp4_cli_timeout(ct);
160 ntp_cli_timeout(nc);
161 }
162}
Note: See TracBrowser for help on using the repository browser.