Ignore:
Timestamp:
Feb 1, 2019, 9:57:09 PM (5 years ago)
Author:
coas-nagasima
Message:

TINETとSocket APIなどを更新

Location:
asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/src/echonet_main.c

    r351 r364  
    318318}
    319319
    320 bool_t started = false;
    321 
    322320void echonet_change_netif_link(uint8_t link_up, uint8_t up)
    323321{
     
    327325                return;
    328326
    329         if (up && !started) {
    330                 started = true;
    331 
    332                 /* ECHONETミドルウェアを起動 */
    333                 ret = ecn_sta_svc();
    334                 if (ret != E_OK)
    335                         return;
    336 
    337                 /* ECHONETミドルウェアを起動するのを待つ */
    338                 dly_tsk(100);
     327        if (up) {
     328                /* インスタンスリスト通知の送信 */
     329                ret = ecn_ntf_inl();
     330                if (ret != E_OK) {
     331                        syslog(LOG_ERROR, "ecn_ntf_inl");
     332                }
    339333        }
    340334
     
    342336        uint8_t data[2];
    343337        data[0] = 0x01;
    344         data[1] = up ? 0x01 : 0x02;
    345338        ret = ecn_brk_wai(data, sizeof(data));
    346339        if (ret != E_OK) {
     
    351344
    352345enum main_state_t{
     346        main_state_start,
    353347        main_state_idle,
    354348        main_state_search,
     
    357351
    358352int main_timer = TMO_FEVR;
    359 enum main_state_t main_state = main_state_idle;
     353enum main_state_t main_state = main_state_start;
    360354int main_retry;
    361355
     
    377371        sil_wrb_mem((uint8_t *)0x0008C02A, 0x7F);
    378372
    379         /* 1秒後にブザーを検索 */
    380         main_state = main_state_search;
     373        /* ECHONETミドルウェアを起動するのを待つ */
     374        main_state = main_state_start;
    381375        main_timer = 1000 * 1000;
    382376
     
    390384        main_btn2_state = (btn2 & 0x80) != 0;
    391385
     386        /* メインタスクを起動 */
    392387        ER ret = act_tsk(MAIN_TASK);
    393388        if (ret != E_OK) {
     
    557552
    558553        switch(main_state){
     554        case main_state_start:
     555                /* ECHONETミドルウェアを起動 */
     556                ret = ecn_sta_svc();
     557                if (ret != E_OK) {
     558                        syslog(LOG_ERROR, "ecn_sta_svc");
     559                }
     560
     561                /* 1秒後にブザーを検索 */
     562                main_state = main_state_search;
     563                main_timer = 1000 * 1000;
     564                break;
    559565        case main_state_idle:
    560566                syslog(LOG_ERROR, "timeout faild on main_state_idle");
  • asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/src/main.c

    r359 r364  
    7979
    8080ID ws_api_mailboxid = MAIN_DATAQUEUE;
     81#ifndef NOUSE_MPF_NET_BUF
    8182ID ws_mempoolid = MPF_NET_BUF_256;
     83#endif
    8284
    8385#ifdef IF_ETHER_BTUSB
     
    111113static void main_timeout();
    112114
     115extern int ntshell_exit;
     116
    113117int uart_read(char *buf, int cnt, void *extobj)
    114118{
    115         return serial_rea_dat(SIO_PORTID, (char *)buf, cnt);
     119        struct main_t *obj = (struct main_t *)extobj;
     120        int result;
     121        ER ret;
     122        int timer;
     123
     124        obj->prev = obj->now;
     125
     126        /* タイマー取得 */
     127        timer = main_get_timer();
     128
     129        /* 待ち */
     130        ret = serial_trea_dat(SIO_PORTID, buf, cnt, timer);
     131        if ((ret < 0) && (ret != E_OK) && (ret != E_TMOUT)) {
     132                syslog(LOG_NOTICE, "tslp_tsk ret: %s %d", itron_strerror(ret), timer);
     133                ntshell_exit = 1;
     134                return -1;
     135        }
     136        result = (int)ret;
     137
     138        ret = get_tim(&obj->now);
     139        if (ret != E_OK) {
     140                syslog(LOG_NOTICE, "get_tim ret: %s", itron_strerror(ret));
     141                ntshell_exit = 1;
     142                return -1;
     143        }
     144
     145                        /* 時間経過 */
     146        int elapse = obj->now - obj->prev;
     147        main_progress(elapse);
     148
     149        /* タイムアウト処理 */
     150        main_timeout();
     151
     152        return result;
    116153}
    117154
     
    119156{
    120157        return serial_wri_dat(SIO_PORTID, buf, cnt);
    121 }
    122 
    123 unsigned char ntstdio_xi(struct ntstdio_t *handle)
    124 {
    125         char buf[1];
    126         if(serial_rea_dat(SIO_PORTID, buf, 1) != 1)
    127                 return -EIO;
    128         return buf[0];
    129 }
    130 
    131 void ntstdio_xo(struct ntstdio_t *handle, unsigned char c)
    132 {
    133         char buf[1];
    134         buf[0] = c;
    135         serial_wri_dat(SIO_PORTID, buf, 1);
    136158}
    137159
     
    150172        main_initialize();
    151173
    152         ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);
     174        ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj);
    153175        ntshell_set_prompt(&ntshell, "NTShell>");
    154176        ntshell_execute(&ntshell);
     
    168190        ER ret;
    169191
    170         ntshell_task_init();
     192#ifdef TOPPERS_OMIT_TECS
     193        serial_opn_por(SIO_PORTID);
     194#endif
     195        serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
     196
     197        ntshell_task_init(uart_read, uart_write, &main_obj);
    171198
    172199        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/src/main.cfg

    r342 r364  
    5454INCLUDE("tinet/tinet_asp.cfg");
    5555INCLUDE("tinet_main.cfg");
    56 INCLUDE("netinet/ip_igmp.cfg");
    5756
    5857/* DHCP クライアント */
     
    7776INCLUDE("ffarch.cfg");
    7877
     78/* mbed */
     79INCLUDE("mbed_api.cfg");
     80
    7981#ifdef IF_ETHER_BTUSB
    8082INCLUDE("usb_hbth.cfg");
Note: See TracChangeset for help on using the changeset viewer.