Changeset 125 for uKadecot/trunk/ecnl_ssp
- Timestamp:
- Jul 23, 2015, 3:21:02 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uKadecot/trunk/ecnl_ssp/echonet_task.c
r108 r125 157 157 static void _ecn_tsk_ecn_msg(intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id); 158 158 159 static void _ecn_tsk_eoj_set(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_ update,159 static void _ecn_tsk_eoj_set(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, bool_t fa_update, 160 160 ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv, 161 161 ECN_FBS_ID *fa_fbs_anno); … … 164 164 static void _ecn_tsk_eoj_res(ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, 165 165 ECN_SRV_CODE fa_sna_esv); 166 static void _ecn_tsk_eoj_set_get(const EOBJINIB *fp_obj, ATR fa_eobjatr, 166 static void _ecn_tsk_eoj_set_get(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, 167 167 ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv, 168 168 ECN_FBS_ID *fa_fbs_anno); 169 static void _ecn_tsk_eoj_set_get_res(const EOBJINIB *fp_obj, ATR fa_eobjatr, 169 static void _ecn_tsk_eoj_set_get_res(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, 170 170 ECN_FBS_ID fa_fbs_id, ECN_FBS_ID *fa_fbs_anno); 171 171 … … 775 775 if ((p_eoj->eojx1 == EOJ_X1_PROFILE) 776 776 && (p_eoj->eojx2 == EOJ_X2_NODE_PROFILE)) { 777 /* 電文処理実行 */ 778 if (_ecn_tsk_ecn_msg_main(fa_fbs_id, p_nod->profile, eobjatr, p_sobj, sobjatr) == 1) 779 a_fwd = true; 780 a_prc = true; 777 if ((p_eoj->eojx3 == p_nod->profile->eojx3) 778 || (p_eoj->eojx3 == 0)) { 779 /* 電文処理実行 */ 780 if (_ecn_tsk_ecn_msg_main(fa_fbs_id, p_nod->profile, eobjatr, p_sobj, sobjatr) == 1) 781 a_fwd = true; 782 a_prc = true; 783 } 784 /* 0x74 プロパティ値通知(応答要)の場合処理したことにする */ 785 else if (p_esv->edata.esv == ESV_INFC) { 786 a_prc = true; 787 } 781 788 } 782 789 /* 機器オブジェクトの場合 */ … … 843 850 T_ECN_EDT_HDR *p_esv; 844 851 ECN_FBS_ID a_fbs_anno = { NULL }; 852 bool_t fromapp = sobjatr == EOBJ_LOCAL_NODE; 845 853 846 854 p_esv = &((T_EDATA *)fa_fbs_id.ptr)->hdr; … … 855 863 break; 856 864 } 857 _ecn_tsk_eoj_set(p_obj, eobjatr, f alse, fa_fbs_id, ESV_NOP, ESV_SET_I_SNA, &a_fbs_anno); /* 0; 0x50 */865 _ecn_tsk_eoj_set(p_obj, eobjatr, fromapp, false, fa_fbs_id, ESV_NOP, ESV_SET_I_SNA, &a_fbs_anno); /* 0; 0x50 */ 858 866 result = 0; 859 867 break; … … 867 875 break; 868 876 } 869 _ecn_tsk_eoj_set(p_obj, eobjatr, f alse, fa_fbs_id, ESV_SET_RES, ESV_SET_C_SNA, &a_fbs_anno); /* 0x71; 0x51 */877 _ecn_tsk_eoj_set(p_obj, eobjatr, fromapp, false, fa_fbs_id, ESV_SET_RES, ESV_SET_C_SNA, &a_fbs_anno); /* 0x71; 0x51 */ 870 878 result = 0; 871 879 break; … … 904 912 break; 905 913 } 906 _ecn_tsk_eoj_set_get(p_obj, eobjatr, f a_fbs_id, ESV_SET_GET_RES, ESV_SET_GET_SNA, &a_fbs_anno); /* 0x7E; 0x5E */914 _ecn_tsk_eoj_set_get(p_obj, eobjatr, fromapp, fa_fbs_id, ESV_SET_GET_RES, ESV_SET_GET_SNA, &a_fbs_anno); /* 0x7E; 0x5E */ 907 915 result = 0; 908 916 break; … … 912 920 if (!p_sobj) 913 921 _ecn_tsk_eoj_res(fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES); /* 0x74; 0 */ 914 else if ( sobjatr == EOBJ_LOCAL_NODE)922 else if (fromapp) 915 923 _ecn_tsk_eoj_get(p_sobj, sobjatr, true, (EPC_RULE_GET|EPC_RULE_ANNO), fa_fbs_id, ESV_INFC, ESV_NOP); /* 0x74; 0 */ 916 924 else 917 _ecn_tsk_eoj_set(p_sobj, sobjatr, true, fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES, &a_fbs_anno); /* 0x7A; 0 */925 _ecn_tsk_eoj_set(p_sobj, sobjatr, fromapp, true, fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES, &a_fbs_anno); /* 0x7A; 0 */ 918 926 result = 0; 919 927 break; … … 939 947 break; 940 948 } 941 _ecn_tsk_eoj_set(p_sobj, sobjatr, true, fa_fbs_id, ESV_NOP, ESV_NOP, &a_fbs_anno); /* 0; 0 */949 _ecn_tsk_eoj_set(p_sobj, sobjatr, fromapp, true, fa_fbs_id, ESV_NOP, ESV_NOP, &a_fbs_anno); /* 0; 0 */ 942 950 result = 1; 943 951 break; … … 952 960 break; 953 961 } 954 _ecn_tsk_eoj_set(p_sobj, sobjatr, true, fa_fbs_id, ESV_NOP, ESV_NOP, &a_fbs_anno); /* 0; 0 */962 _ecn_tsk_eoj_set(p_sobj, sobjatr, fromapp, true, fa_fbs_id, ESV_NOP, ESV_NOP, &a_fbs_anno); /* 0; 0 */ 955 963 result = 1; 956 964 break; … … 965 973 break; 966 974 } 967 _ecn_tsk_eoj_set_get_res(p_sobj, sobjatr, f a_fbs_id, &a_fbs_anno); /* 0x7A; 0 */975 _ecn_tsk_eoj_set_get_res(p_sobj, sobjatr, fromapp, fa_fbs_id, &a_fbs_anno); /* 0x7A; 0 */ 968 976 result = 1; 969 977 break; … … 1116 1124 } 1117 1125 1118 static ER _ecn_tsk_eoj_set_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_ update,1126 static ER _ecn_tsk_eoj_set_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, bool_t fa_update, 1119 1127 ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count, 1120 1128 int *p_sw_ok); 1121 1129 /* プロパティ値書き込み実行 */ 1122 static ER _ecn_tsk_eoj_set_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_ update,1130 static ER _ecn_tsk_eoj_set_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, bool_t fa_update, 1123 1131 ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count, 1124 1132 int *p_sw_ok) … … 1147 1155 a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc); 1148 1156 if ((a_eprp != NULL) 1149 && (fa_update || (((a_eprp->eprpatr & EPC_RULE_SET) != 0) || (fa_eobjatr == EOBJ_LOCAL_NODE)))) {1157 && (fa_update || (((a_eprp->eprpatr & EPC_RULE_SET) != 0) || fa_fromapp))) { 1150 1158 a_anno = (fa_eobjatr == EOBJ_LOCAL_NODE) && ((a_eprp->eprpatr & EPC_ANNOUNCE) != 0); 1151 1159 a_update = a_anno; … … 1426 1434 1427 1435 /* プロパティ値書き込み要求 */ 1428 static void _ecn_tsk_eoj_set(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_ update,1436 static void _ecn_tsk_eoj_set(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, bool_t fa_update, 1429 1437 ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv, 1430 1438 ECN_FBS_ID *fa_fbs_anno) … … 1479 1487 1480 1488 /* プロパティ値書き込み実行 */ 1481 a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, fa_ update, fa_fbs_id, a_fbs_res,1489 a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, fa_fromapp, fa_update, fa_fbs_id, a_fbs_res, 1482 1490 fa_fbs_anno, p_req_esv->edata.opc, &a_sw_ok); 1483 1491 if (a_ret) … … 1695 1703 } 1696 1704 1697 static void _ecn_tsk_eoj_set_get(const EOBJINIB *fp_obj, ATR fa_eobjatr, 1705 static void _ecn_tsk_eoj_set_get(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, 1698 1706 ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv, 1699 1707 ECN_FBS_ID *fa_fbs_anno) … … 1745 1753 1746 1754 /* プロパティ値書き込み実行 */ 1747 a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, fa lse, fa_fbs_id, a_fbs_res,1755 a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, fa_fromapp, false, fa_fbs_id, a_fbs_res, 1748 1756 fa_fbs_anno, a_count, &a_sw_ok); 1749 1757 if (a_ret) { … … 1819 1827 1820 1828 static void _ecn_tsk_eoj_set_get_res(const EOBJINIB *fp_obj, ATR fa_eobjatr, 1821 ECN_FBS_ID fa_fbs_id, ECN_FBS_ID *fa_fbs_anno)1829 bool_t fa_fromapp, ECN_FBS_ID fa_fbs_id, ECN_FBS_ID *fa_fbs_anno) 1822 1830 { 1823 1831 T_ECN_EDT_HDR const *p_req_esv = &((T_EDATA *)fa_fbs_id.ptr)->hdr; … … 1872 1880 1873 1881 /* プロパティ値読み出し応答の書き込み実行 */ 1874 a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, true, fa_fbs_id, a_fbs_dmy,1882 a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, fa_fromapp, true, fa_fbs_id, a_fbs_dmy, 1875 1883 fa_fbs_anno, a_count, &a_sw_ok); 1876 1884 if (a_ret) {
Note:
See TracChangeset
for help on using the changeset viewer.