Ignore:
Timestamp:
Apr 29, 2017, 4:33:37 PM (7 years ago)
Author:
coas-nagasima
Message:

ファイルを追加、更新。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/ntshell/webserver/websocket.h

    r270 r279  
    5858#include "t_stddef.h"
    5959
    60 #define NUM_ECHONET_MEMPOOL_BLOCK (60)          /* 電文用メモリブロックの数 */
    61 #define ECHONET_MEMPOOL_BLOCK_SIZE (256)        /* 電文用メモリブロックのサイズ */
     60#define NUM_WEBSOCKET_MBXID     2
    6261
    63 /* T_EDATA管理領域サイズ */
    64 #define DEF_ECN_EDT_HDR_LEN (sizeof(intptr_t))
     62#ifndef TOPPERS_MACRO_ONLY
     63#include "websocket_fbs.h"
    6564
    66 /* 管理領域サイズ(64byte - sizeof(T_MSG)) */
    67 /* #define DEF_ECN_FBS_LIB_HDR_LEN ((ECHONET_MEMPOOL_BLOCK_SIZE + sizeof(int) - 1)>> 2) // */
    68 #define DEF_ECN_FBS_LIB_HDR_LEN (64 - DEF_ECN_EDT_HDR_LEN)
    69 
    70 /* 管理領域を含むブロックに保持するデータサイズ */
    71 #define DEF_ECN_FBS_FST_DAT_LEN (64)
    72 
    73 /* リンクポインタé
    74 åˆ—のサイズ(byte) */
    75 #define DEF_ECN_FBS_LNK_LEN (ECHONET_MEMPOOL_BLOCK_SIZE - DEF_ECN_EDT_HDR_LEN - DEF_ECN_FBS_LIB_HDR_LEN - DEF_ECN_FBS_FST_DAT_LEN)
    76 
    77 /* 固定長バッファ最大サイズ */
    78 #define DEF_ECN_FBS_BUF_MAXLEN ((DEF_ECN_FBS_LNK_LEN / sizeof(void *)) * ECHONET_MEMPOOL_BLOCK_SIZE + DEF_ECN_FBS_FST_DAT_LEN)
    79 
    80 /* 子要素バッファのサイズ */
    81 #define DEF_ECN_FBS_SUB_BUF_LEN ECHONET_MEMPOOL_BLOCK_SIZE
    82 
    83 /* リンクポインタé
    84 åˆ—に列挙される、子要素バッファ */
    85 typedef struct {
    86         uint8_t payload[ECHONET_MEMPOOL_BLOCK_SIZE];
    87 } T_ECN_SUB_BLK;
    88 
    89 /* リンクポインタé
    90 åˆ— */
    91 typedef union {
    92         T_ECN_SUB_BLK   *p_sub[DEF_ECN_FBS_LNK_LEN / sizeof(T_ECN_SUB_BLK *)];
    93         uint8_t                 bin[DEF_ECN_FBS_LNK_LEN];
    94 } T_ECN_FBS_LNK;
    95 
    96 /* 管理領域(64byte - sizeof(T_MSG)) */
    97 typedef struct {
    98         uint16_t        length;                 /* メッセージ長 */
    99         uint16_t        type;                   /* メッセージタイプ */
    100         union {
    101                 ID mbxid;                               /* 送信å
    102 ƒãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ID(å†
    103 éƒ¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ï¼‰ */
    104         }sender;
    105         union {
    106                 ID mbxid;                               /* 送信å
    107 ˆãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ID(å†
    108 éƒ¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ï¼‰ */
    109         }target;
    110         union {
    111                 ID mbxid;                               /* 返信å
    112 ˆãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ID(å†
    113 éƒ¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ï¼‰ */
    114         }reply;
    115 
    116         int                     rd;                             /*      読み取りヘッドæƒ
    117 å ±     */
    118         int                     wr;                             /*      書き込みヘッドæƒ
    119 å ±     */
    120 } T_ECN_FBS_HDR;
    121 
    122 /* 管理領域を含むブロックの構造 */
    123 typedef struct {
    124         uint8_t _msg[DEF_ECN_EDT_HDR_LEN];      /* T_MSG */
    125         T_ECN_FBS_HDR   hdr;    /*      管理領域  64byte  - sizeof(T_MSG)   */
    126         uint8_t                 _gap[DEF_ECN_FBS_LIB_HDR_LEN - sizeof(T_ECN_FBS_HDR)];
    127         T_ECN_FBS_LNK   lnk;    /*      リンクポインタé
    128 åˆ—    128byte                 */
    129         uint8_t                 payload[DEF_ECN_FBS_FST_DAT_LEN];
    130 } T_ECN_FST_BLK;
    131 
    132 /* FBS-ID */
    133 typedef struct ecn_fbs_id_strc {
    134         T_ECN_FST_BLK   *ptr;
    135 } ECN_FBS_ID;
    136 
    137 ER _ecn_fbs_cre(size_t fa_req_size, ECN_FBS_ID *fp_id);
    138 ER _ecn_fbs_del(ECN_FBS_ID fa_id);
    139 size_t _ecn_fbs_get_datalen(ECN_FBS_ID fa_id);
    140 int _ecn_fbs_peek(ECN_FBS_ID fa_id, size_t fa_seek);
    141 ER _ecn_fbs_poke(ECN_FBS_ID fa_id, size_t fa_seek, int fa_val);
    142 
    143 extern ID ecn_api_mailboxid;
    144 extern ID WEBSOCKET_MBXID;
     65extern ID ws_api_mailboxid;
    14566
    14667typedef struct ws_state
     
    16889        ws_state_t wstate;
    16990        ws_state_t rstate;
    170         ECN_FBS_ID cur_in_msg;
     91        WS_FBS_ID cur_in_msg;
    17192};
    17293
     
    179100int websocket_output(struct websocket *ws, void *data, int len);
    180101
     102#endif /* TOPPERS_MACRO_ONLY */
     103
    181104#endif  /* WEBSOCKET_H */
Note: See TracChangeset for help on using the changeset viewer.